Heim >Backend-Entwicklung >Python-Tutorial >Python-Methode, um den Pfad der Programmausführungsdatei abzurufen

Python-Methode, um den Pfad der Programmausführungsdatei abzurufen

不言
不言Original
2018-04-27 10:16:016960Durchsuche

Das Folgende ist eine Python-Methode zum Abrufen des Programmausführungsdateipfads (empfohlen). Sie hat einen guten Referenzwert und ich hoffe, dass sie für alle hilfreich ist. Schauen wir uns das gemeinsam an

1. Holen Sie sich die aktuell ausgeführte Hauptskriptmethode: sys.argv[0] und _ file _

(1)sys.argv

Eine Liste von Befehlsparametern, die an das Python-Skript übergeben werden. sys.argv[0] ist der Name des Skripts. Im Allgemeinen wird der relative Pfad ermittelt. Verwenden Sie os.path.abspath(sys.argv[0]), um den absoluten Pfad der ausführbaren Datei abzurufen:

dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) 
os.path.realpath(sys.argv[0])

Wenn im Befehl „sys.argv“ in der Zeile ausgeführt wird, wird der Interpreterpfad zurückgegeben: ['/Library/Frameworks/Python.framework/Versions/3.6/bin/ipython3']

( 2)_ _ file_ _

Rufen Sie den Pfad des aktuellen Ausführungsmoduls ab, der im Allgemeinen ein relativer Pfad ist. Verwenden Sie os.path.abspath(_ _ file_ _), um den absoluten Pfad zu erhalten Pfad der Ausführungsdatei:

dirname, filename = os.path.split(os.path.abspath( _ _ file_ _)) 
os.path.realpath(_ _ file_ _)

Hinweis: In der Python-Konsole führt die direkte Verwendung von print _ _ file _ dazu, dass der Name ' _ file _ ' nicht vorhanden ist Definierter Fehler, da es zu diesem Zeitpunkt in keinem Skript ausgeführt wird, gibt es natürlich keine Definition von _ Datei _ _.

(3) Der Unterschied zwischen sys.argv[0] und _ _ Datei _ _: Wenn sich in der ausführbaren Hauptdatei befindet, gibt es keinen Unterschied zwischen die beiden, aber wenn es unter verschiedenen Dateien unterschiedlich ist, wie z. B. den beiden Dateien a.py und b.py

Die Ergebnisse der Ausführung von a.py sind wie folgt:

Wie aus den Ergebnissen in der obigen Abbildung ersichtlich ist: Wenn beide a.py sind .py, die Ergebnisse sind die gleichen, aber von der sys.argv[0], die ausgeführt wird, wenn b importiert wird, bezieht sich immer noch auf die Hauptlaufdatei: a.py, aber _ _ file_ _ gibt tatsächlich b.py

aus

2. sys.path

Eine Zeichenfolgenliste von Modulsuchpfaden. Initialisiert durch die Umgebungsvariable PYTHONPATH. ist eine Liste von Verzeichnissen, sys.path[0] ist das Verzeichnis, in dem sich das aktuelle Skript befindet, das den Python-Interpreter aufruft, dh das übergeordnete Verzeichnis der Hauptausführungsdatei.

Beispiel: Bei Ausführung in der Datei a.py von /user/ybp/a.py: print(sys.path[0])==>/user/ybp,

Die Ausführung in der Befehlszeile gibt eine leere Zeichenfolge zurück.

3. Beachten Sie, dass es sich bei os.path um eine Systemumgebungsvariable handelt, die von der oben genannten Variable zu unterscheiden ist. 0], os.path Einige Methoden in:

(1)os.path.split(path)

Teilen Sie den Pfadnamen in ein Paar aus Kopf und Schwanz auf. Es gibt nie einen abschließenden Schrägstrich. Wenn der Eingabepfad mit einem Schrägstrich endet, wird ein leerer Trailer erhalten.

Wenn der Eingabepfad keinen Schrägstrich enthält, ist das Header-Feld leer. Wenn der Eingabepfad leer ist, sind der resultierende Kopf und das resultierende Ende leer.

https://docs.python.org/2/library/os.path.html#os.path.split

(2)os.path. realpath(path)

Gibt den absoluten Pfad eines bestimmten Dateinamens zurück, der über die Befehlszeile ausgeführt werden kann.

https://docs.python.org/2/library/os.path.html#os.path.realpath

4.os.getcwd() Zurückgegeben wird der aktuelle Arbeitspfad und muss nicht unbedingt in einem Skript ausgeführt werden. Dieser Befehl entspricht pwd und kann auf der Befehlszeile ausgeführt werden.

Verwandte Empfehlungen:

Python-Methode zum Abrufen bestimmter Daten aus CSV-Text


Das obige ist der detaillierte Inhalt vonPython-Methode, um den Pfad der Programmausführungsdatei abzurufen. 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