¿Cómo puedo encontrar el directorio del script? [duplicar]

Resuelto Jonathan Livni asked hace 13 años • 12 respuestas

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 __file__solo se proporciona el nombre del archivo sin la ruta.

¿No hay alguna forma en Python de (siempre) poder recibir la ruta en la que reside el script?

Jonathan Livni avatar Feb 08 '11 22:02 Jonathan Livni
Aceptado

Debe llamar os.path.realpatha __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__)))
Czarek Tomczak avatar Feb 19 '2012 16:02 Czarek Tomczak

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 de PYTHONPATH.

Fuente: https://docs.python.org/library/sys.html#sys.path

RED MONKEY avatar Mar 29 '2011 15:03 RED MONKEY