¿Cómo obtengo la ruta y el nombre del archivo Python que se está ejecutando actualmente?
Tengo scripts que llaman a otros archivos de script, pero necesito obtener la ruta del archivo que se está ejecutando actualmente dentro del proceso.
Por ejemplo, digamos que tengo tres archivos. Usando archivo ejecutable :
script_1.py
llamadasscript_2.py
.- A su vez,
script_2.py
llamascript_3.py
.
¿Cómo puedo obtener el nombre del archivo y la ruta de script_3.py
, desde el código internoscript_3.py
, sin tener que pasar esa información como argumentos script_2.py
?
(La ejecución os.getcwd()
devuelve la ruta del archivo del script inicial original, no la del archivo actual).
Aceptado
__file__
como han dicho otros. Es posible que también desee utilizar os.path.realpath para eliminar enlaces simbólicos:
import os
os.path.realpath(__file__)
p1.py:
execfile("p2.py")
p2.py:
import inspect, os
print (inspect.getfile(inspect.currentframe())) # script filename (usually with path)
print (os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) # script directory