¿Cómo puedo encontrar el directorio del script? [duplicar]
Considere el siguiente código Python:
import os
print os.getcwd()
Lo uso os.getcwd()
para obtener la ubicación del directorio del archivo de script . Cuando ejecuto el script desde la línea de comando, me da la ruta correcta, mientras que cuando lo ejecuto desde un script ejecutado por código en una vista de Django, se imprime /
.
¿Cómo puedo obtener la ruta al script desde un script ejecutado por una vista de Django?
ACTUALIZACIÓN:
Resumiendo las respuestas hasta ahora, os.getcwd()
y os.path.abspath()
ambas brindan el directorio de trabajo actual, que puede ser o no el directorio donde reside el script. En la configuración de mi servidor web
solo se proporciona el nombre del archivo sin la ruta.__file__
¿No hay alguna forma en Python de (siempre) poder recibir la ruta en la que reside el script?
Debe llamar os.path.realpath
a __file__
, de modo que cuando __file__
sea un nombre de archivo sin la ruta, aún obtenga la ruta del directorio:
import os
print(os.path.dirname(os.path.realpath(__file__)))
Intentar sys.path[0]
.
Para citar los documentos de Python:
Tal como se inicializó al iniciar el programa, el primer elemento de esta lista,
path[0]
es el directorio que contiene el script que se utilizó para invocar al intérprete de Python. Si el directorio del script no está disponible (por ejemplo, si el intérprete se invoca de forma interactiva o si el script se lee desde la entrada estándar),path[0]
es la cadena vacía, que dirige a Python a buscar primero los módulos en el directorio actual. Observe que el directorio del script se inserta antes de las entradas insertadas como resultado dePYTHONPATH
.
Fuente: https://docs.python.org/library/sys.html#sys.path