programa - ¿Cómo obtengo la ruta del script Python en el que me estoy ejecutando?
ejecutar.py desde consola python (5)
7.2 de Dive Into Python: Finding the Path .
import sys, os
print(''sys.argv[0] ='', sys.argv[0])
pathname = os.path.dirname(sys.argv[0])
print(''path ='', pathname)
print(''full path ='', os.path.abspath(pathname))
Duplicar:
En Python, ¿cómo obtengo la ruta y el nombre del archivo que se está ejecutando actualmente?
¿Cómo obtengo la ruta del script Python en el que me estoy ejecutando? Estaba haciendo dirname(sys.argv[0])
, pero en Mac solo obtengo el nombre de archivo, no la ruta completa como lo hago en Windows.
No importa desde dónde se inicie mi aplicación, quiero abrir archivos que sean relativos a mis archivos de script.
La solución aceptada para esto no funcionará si planea compilar sus scripts usando py2exe. Si planea hacerlo, este es el equivalente funcional:
os.path.dirname(sys.argv[0])
Py2exe no proporciona una variable __file__
. Para referencia: http://www.py2exe.org/index.cgi/Py2exeEnvironment
Si tiene incluso la ruta de acceso relativa (en este caso, parece ser ./
) puede abrir archivos relativos a su (s) archivo (s) de script. Utilizo Perl, pero se puede aplicar la misma solución general: divido el directorio en una matriz de carpetas, luego pop
el último elemento (el script), luego push
(o para usted, append
) lo que quiera y luego me uno ¡Juntos de nuevo, y BAM! Tengo un nombre de ruta de trabajo que apunta exactamente hacia donde espero que apunte, relativo o absoluto.
Por supuesto, hay mejores soluciones, como se publica. Simplemente me gusta el mío.
os.path.realpath(__file__)
le dará la ruta del archivo actual, resolviendo cualquier enlace simbólico en la ruta. Esto funciona bien en mi mac.
import os
print os.path.abspath(__file__)