Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich zuverlässig den Pfad des aktuell ausgeführten Python-Skripts ermitteln?

Wie kann ich zuverlässig den Pfad des aktuell ausgeführten Python-Skripts ermitteln?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 18:30:03951Durchsuche

How Can I Reliably Get the Path of the Currently Executing Python Script?

Den Pfad der aktuell ausgeführten Datei in Python finden

Das Ermitteln des Pfads zum aktuellen Ausführungsskript in Python ist entscheidend für den Zugriff auf Dateien und Durchführung verschiedener Operationen. Allerdings können mehrere Ansätze unter bestimmten Bedingungen scheitern. In diesem Artikel wird eine zuverlässige Methode zum Abrufen des Dateipfads in verschiedenen Szenarien untersucht.

Die Herausforderung mit vorhandenen Ansätzen

Häufig verwendete Methoden wie os.path.abspath(os. path.dirname(sys.argv[0])) und os.path.abspath(os.path.dirname(__file__)) haben Einschränkungen. sys.argv[0] stellt möglicherweise nicht den richtigen Pfad bereit, wenn es von einem anderen Python-Skript ausgeführt wird, während __file__ in py2exe-Skripten, IDLE, Mac OS Lösung

Um diese Probleme zu beheben, besteht ein zuverlässiger Ansatz darin, die Module inspect und os zu verwenden:

Mit getsourcefile(lambda:0) können Sie die Quelldatei von abrufen die aktuell ausgeführte Lambda-Funktion, wodurch die Einschränkungen anderer Methoden effektiv umgangen werden. Der Pfad wird dann mit abspath extrahiert.

<code class="python">from inspect import getsourcefile
from os.path import abspath</code>

Beispielszenario

Betrachten Sie die folgende Verzeichnisstruktur:

a.py
C:.
|   a.py
\---subdir
        b.py
enthält:

b.py
<code class="python">from inspect import getsourcefile
from os.path import abspath

print("a.py: File Path =", abspath(getsourcefile(lambda:0)))
execfile("subdir/b.py")</code>
enthält:

Beim Ausführen von a.py sollte Folgendes angezeigt werden:

<code class="python">from inspect import getsourcefile
from os.path import abspath

print("b.py: File Path =", abspath(getsourcefile(lambda:0)))</code>

Dies demonstriert die Fähigkeit, den Dateipfad in verschiedenen Situationen korrekt zu ermitteln.

Das obige ist der detaillierte Inhalt vonWie kann ich zuverlässig den Pfad des aktuell ausgeführten Python-Skripts ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn