Digamos que tiene un módulo que contienehacer una ruta de archivo "siempre relativa al módulo actual"?
myfile = open('test.txt', 'r')
y el archivo 'test.txt' está en la misma carpeta. Si ejecuta el módulo, el archivo se abrirá correctamente. Ahora digamos que importa ese módulo de otro que está en otra carpeta. El archivo no se buscará en la misma carpeta que el módulo donde está el código. Entonces, ¿cómo hacer primero que el módulo busque archivos con rutas relativas en la misma carpeta? Existen varias soluciones al usar "__file__
" o "os.getcwd()
", pero espero que haya una manera más limpia, como el mismo carácter especial en la cadena que pasa a abrir() o file().
Cuál es el problema con 'os.getcwd()'? – cfedermann
'os.getcwd()' devuelve la ruta del primer módulo, que importó ese módulo, o importó otro que lo importó. El primer módulo puede estar en muchos directorios hacia arriba o hacia abajo. Por lo tanto, no parece muy elegante escribir 'os.getcwd() + 'something/eventhingelse/yetanother/finallyhere'' –
Bueno, entonces pruebe la respuesta' sys.modules' propuesta abajo :) – cfedermann