¿Cómo obtengo la ruta y el nombre del archivo Python que se está ejecutando actualmente?

Resuelto Ray asked hace 16 años • 26 respuestas

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.pyllamadas script_2.py.
  • A su vez, script_2.pyllama script_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).

Ray avatar Sep 09 '08 02:09 Ray
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__)
user13993 avatar Dec 23 '2009 20:12 user13993

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
Pat Notz avatar Sep 08 '2008 23:09 Pat Notz