Curiosamente, la importación de os.path importará todos los sistemas operativos. intente lo siguiente en el indicador interactivo:
import os.path
dir(os)
El resultado será el mismo que si acaba de importar el sistema operativo. Esto se debe a que os.path se referirá a un módulo diferente según el sistema operativo que tenga, por lo que python importará el sistema operativo para determinar qué módulo cargar para la ruta.
reference
Con algunos módulos, diciendo import foo
no expondrá foo.bar
, así que supongo que realmente depende del diseño del módulo específico.
En general, la importación de los módulos explícitos que necesita debe ser un poco más rápida. En mi máquina:
import os.path
:7.54285810068e-06
segundo
import os
:9.21904878972e-06
segundo
Estos tiempos son lo suficientemente cerca para ser bastante insignificante. Su programa puede necesitar usar otros módulos desde os
ahora o en un momento posterior, por lo que tiene sentido sacrificar los microsegundos y usar import os
para evitar este error más adelante. Normalmente me limito a importar solo os como un todo, pero puedo ver por qué algunos prefieren import os.path
para ser técnicamente más eficientes y transmitir a los lectores del código que esa es la única parte del módulo os
que será necesario usar. Básicamente se reduce a una pregunta de estilo en mi mente.
¡Excelente respuesta, muy informativa! ¡Felicitaciones! Aunque no responde directamente la pregunta, tiene muchos detalles útiles. Pero, ¿podría explicar más detalladamente "esto es coherente con la forma en que se documenta os.path"? Al igual que Chris Hulan, el ejemplo os.walk() importa solo el sistema operativo en lugar de os.path. –
@Denilson, incluye una respuesta directa: siempre hago 'import os.path' y creo que es una manera más agradable. Por "Esto es coherente con la forma en que se documenta os.path" Quise decir que se le dio su propia página en la documentación en http://docs.python.org/library/os.path.html. –
¿Por qué? ¿Por qué se hace de esta manera? – user1712447