Come posso ottenere il percorso e il nome del file che è attualmente in esecuzione?
Ho degli script che chiamano altri file di script, ma ho bisogno di ottenere il filepath del file che è attualmente in esecuzione all'interno del processo.
Per esempio, diciamo che ho tre file. Usando execfile:
script_1.py
chiamascript_2.py
.- A sua volta,
script_2.py
chiamascript_3.py
.
Come posso ottenere il nome del file e il percorso di script_3.py
, dal codice all'interno di script_3.py
, senza dover passare queste informazioni come argomenti da script_2.py
?
(L'esecuzione di os.getcwd()
restituisce il filepath dello script originale di partenza, non quello del file corrente).
461
3
Non è del tutto chiaro cosa intendi per "il percorso del file che è attualmente in esecuzione nel processo".
sys.argv[0]
di solito contiene la posizione dello script che è stato invocato dall'interprete Python. Controllate la documentazione di sys per maggiori dettagli.Come @Tim e @Pat Notz hanno sottolineato, l'attributo \file\ fornisce accesso a
al file da cui il modulo è stato caricato, se è stato caricato da un file
L'attributo
__file__
funziona sia per il file contenente il codice di esecuzione principale che per i moduli importati.Vedere
Penso che sia solo
__file__
Sembra che tu voglia anche controllare il modulo inspect.