integrar - script python en html




¿Cómo puedo encontrar el directorio del script con Python? (8)

Esta pregunta ya tiene una respuesta aquí:

Considere el siguiente código de Python:

import os
print os.getcwd()

Utilizo os.getcwd() para obtener la ubicación del directorio del archivo de script . Cuando ejecuto el script desde la línea de comandos, 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 Django?

ACTUALIZAR:
Resumiendo las respuestas hasta ahora - os.getcwd() y os.path.abspath() proporcionan el directorio de trabajo actual que puede o no ser el directorio donde reside el script. En la configuración de mi servidor web, __file__ solo da el nombre de archivo sin la ruta.

¿No hay ninguna manera en Python para (siempre) poder recibir la ruta en la que reside el script?


Este codigo

import os
dn = os.path.dirname(os.path.realpath(__file__))

establece "dn" al nombre del directorio que contiene el script que se está ejecutando actualmente. Este codigo

fn = os.path.join(dn,"vcb.init")
fp = open(fn,"r")

establece "fn" en "script_dir / vcb.init" (de manera independiente de la plataforma) y abre ese archivo para que lo lea el script que se está ejecutando actualmente.

Tenga en cuenta que "el script que se está ejecutando actualmente" es un tanto ambiguo. Si su programa completo consta de 1 script, entonces ese es el script que se está ejecutando actualmente y la solución "sys.path [0]" funciona bien. Pero si su aplicación consiste en el script A, que importa algún paquete "P" y luego llama el script "B", entonces se está ejecutando "PB". Si necesita obtener el directorio que contiene "PB", desea la solución " os.path.realpath(__file__) ".

" __file__ " solo da el nombre de la secuencia de comandos que se ejecuta actualmente (parte superior de la pila): "x.py". No da ninguna información de ruta. Es la llamada "os.path.realpath" que hace el trabajo real.


Este es un hilo bastante antiguo, pero he tenido este problema al intentar guardar archivos en el directorio actual en el que se encuentra el script al ejecutar un script de Python desde un trabajo cron. getcwd () y gran parte de la otra ruta aparece con su directorio de inicio.

para obtener una ruta absoluta al script que utilicé

directory = os.path.abspath(os.path.dirname(__file__))


Esto funcionó para mí (y lo encontré a través de esta pregunta de )

os.path.realpath(__file__)

Prueba esto:

def get_script_path(for_file = None):
    path = os.path.dirname(os.path.realpath(sys.argv[0] or 'something'))
    return path if not for_file else os.path.join(path, for_file)

Utilice os.path.abspath('')


Yo suelo:

import os
import sys

def get_script_path():
    return os.path.dirname(os.path.realpath(sys.argv[0]))

Como lo señala aiham en un comentario, puede definir esta función en un módulo y usarla en diferentes scripts.


import os
exec_filepath = os.path.realpath(__file__)
exec_dirpath = exec_filepath[0:len(exec_filepath)-len(os.path.basename(__file__))]

import os
script_dir = os.path.dirname(os.path.realpath(__file__)) + os.sep




getcwd