Wie erhalte ich den Pfad und den Namen der Datei, die gerade ausgeführt wird?
Ich habe Skripte, die andere Skriptdateien aufrufen, aber ich muss den Dateipfad der Datei abrufen, die gerade im Prozess ausgeführt wird.
Sagen wir zum Beispiel, ich habe drei Dateien. Mit execfile:
script_1.py
ruftscript_2.py
auf.script_2.py
ruft wiederumscript_3.py
auf.
Wie kann ich den Dateinamen und den Pfad von script_3.py
, vom Code in script_3.py
, erhalten, ohne diese Informationen als Argumente von script_2.py
übergeben zu müssen?
(Das Ausführen von os.getcwd()
gibt den ursprünglichen Dateipfad des Startskripts zurück, nicht den der aktuellen Datei).
461
3
Es ist nicht ganz klar, was Sie mit "dem Dateipfad der Datei, die gerade innerhalb des Prozesses läuft" meinen. sys.argv[0]` enthält normalerweise den Ort des Skripts, das vom Python-Interpreter aufgerufen wurde. Lesen Sie die sys-Dokumentation für weitere Details.
Wie @Tim und @Pat Notz dargelegt haben, bietet das Attribut __file__ Zugriff auf
Das Attribut
__file__
funktioniert sowohl für die Datei, die den Hauptausführungscode enthält, als auch für importierte Module.Siehe
Ich glaube, es ist nur
__file__
. Vielleicht möchten Sie auch das inspect module ausprobieren.