Ich möchte den Pfad des aktuellen Verzeichnisses abrufen, unter dem eine .py-Datei ausgeführt wird.
Zum Beispiel eine einfache Datei D:\test.py
mit Code:
import os
print os.getcwd()
print os.path.basename(__file__)
print os.path.abspath(__file__)
print os.path.dirname(__file__)
Es ist seltsam, dass die Ausgabe ist:
D:\
test.py
D:\test.py
EMPTY
Ich erwarte die gleichen Ergebnisse von der getcwd()
und path.dirname()
.
Gegeben os.path.abspath = os.path.dirname + os.path.basename
, warum
os.path.dirname(__file__)
kehrt leer zurück?
os.path.dirname(filename) + os.path.basename(filename) == filename
weil das Verzeichnis-Trennzeichen fehlt. Wir haben eher:os.path.join(os.path.dirname(filename), os.path.basename(filename)) == filename
__file__
auf den Namen der aktuellen Datei erweitert, sodass Sie eine wörtliche Kopie des Codes aus dieser Antwort verwenden können.kann auch so verwendet werden:
quelle
os.path.realpath(__file__)
Geben Sie den Abspath des aktuellen Skripts zurück. os.path.split (abspath) [0] gibt das aktuelle Verzeichnis zurückquelle
quelle
Sie können diesen Weg auch verwenden
quelle