Die Identifizierung des Pfads zum aktuell ausgeführten Python-Skript ist ein entscheidender Aspekt für verschiedene Anwendungen. Es kann jedoch eine Herausforderung sein, einen „universellen“ Ansatz zu finden, der für verschiedene Szenarien funktioniert. Dieser Artikel untersucht mehrere Methoden und geht auf die damit verbundenen Einschränkungen ein und stellt letztendlich eine umfassende Lösung vor.
path = os.path.abspath(os.path.dirname(__file__)): Diese Methode funktioniert möglicherweise nicht in Fällen, in denen das Attribut
Um den Pfad der aktuell ausgeführten Datei unabhängig vom Ausführungskontext zu erhalten, kann eine Kombination von Funktionen aus den Modulen inspect und os verwendet werden:
from inspect import getsourcefile from os.path import abspath path = abspath(getsourcefile(lambda:0))
Diese Lösung bietet einen konsistenten Ansatz, der den Quelldateipfad in verschiedenen Szenarien abruft, einschließlich:
Unter Berücksichtigung der folgenden Verzeichnisstruktur:
C:. | a.py \---subdir b.py
Und der Code in a.py:
#! /usr/bin/env python import os, sys print "a.py: os.getcwd()=", os.getcwd() print execfile("subdir/b.py")
Und der Code in subdir/b.py:
#! /usr/bin/env python import os, sys print "b.py: os.getcwd()=", os.getcwd() print
Die Ausgabe von Python a.py ist :
a.py: os.getcwd()= C:\ b.py: os.getcwd()= C:\zzz
Dies zeigt, dass os.getcwd() das Arbeitsverzeichnis des Ausführungskontexts widerspiegelt, das vom Speicherort des ausgeführten Skripts abweichen kann. Im Gegensatz dazu liefert die vorgeschlagene Lösung (abspath(getsourcefile(lambda:0))) konsistent den Quelldateipfad des Skripts, unabhängig vom Ausführungskontext.
Das obige ist der detaillierte Inhalt vonWie können Sie den Pfad der Ausführungsdatei in Python zuverlässig bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!