Bei einem Pfad wie dem folgenden "mydir/myfile.txt"
Wie finde ich den absoluten Pfad der Datei relativ zum aktuellen Arbeitsverzeichnis in Python? Unter Windows könnte ich z. B. Folgendes erhalten:
"C:/example/cwd/mydir/myfile.txt"
Bei einem Pfad wie dem folgenden "mydir/myfile.txt"
Wie finde ich den absoluten Pfad der Datei relativ zum aktuellen Arbeitsverzeichnis in Python? Unter Windows könnte ich z. B. Folgendes erhalten:
"C:/example/cwd/mydir/myfile.txt"
Diese immer erhält den richtigen Dateinamen des aktuellen Skripts, auch wenn es aus einem anderen Skript heraus aufgerufen wird. Dies ist besonders nützlich bei der Verwendung von subprocess
.
import sys,os
filename = sys.argv[0]
von dort aus können Sie den vollständigen Pfad des Skripts mit abrufen:
>>> os.path.abspath(filename)
'/foo/bar/script.py'
Es erleichtert auch die Navigation in den Ordnern, indem es einfach an die /..
so oft Sie wollen, um in der Hierarchie der Verzeichnisse "nach oben" zu gelangen.
Um den cwd zu erhalten:
>>> os.path.abspath(filename+"/..")
'/foo/bar'
Für den übergeordneten Pfad:
>>> os.path.abspath(filename+"/../..")
'/foo'
Durch die Kombination "/.."
mit anderen Dateinamen, können Sie auf jede Datei im System zugreifen.
Heute können Sie auch die unipath
Paket, das auf der Grundlage von path.py
: http://sluggo.scrapping.cc/python/unipath/
>>> from unipath import Path
>>> absolute_path = Path('mydir/myfile.txt').absolute()
Path('C:\\example\\cwd\\mydir\\myfile.txt')
>>> str(absolute_path)
C:\\example\\cwd\\mydir\\myfile.txt
>>>
Ich würde empfehlen, dieses Paket zu verwenden, da es Folgendes bietet eine saubere Schnittstelle zu allgemeinen os.path-Dienstprogrammen .
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.