1050 Stimmen

Wie man einen absoluten Dateipfad in Python ermittelt

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"

18voto

Lucas Azevedo Punkte 1523

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.

15voto

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 .

10voto

Diaa M. Shalabi Punkte 960

Damit können Sie den absoluten Pfad einer bestimmten Datei ermitteln.

from pathlib import Path

fpath = Path('myfile.txt').absolute()

print(fpath)

2voto

Evan Carroll Punkte 1

Bei einem Pfad wie mydir/myfile.txt Wie finde ich den absoluten Pfad der Datei relativ zum aktuellen Arbeitsverzeichnis in Python?

Ich würde es folgendermaßen machen,

import os.path
os.path.join( os.getcwd(), 'mydir/myfile.txt' )

Das ergibt '/home/ecarroll/mydir/myfile.txt'

1voto

chikwapuro Punkte 1248

Wenn Sie einen Mac benutzen

import os
upload_folder = os.path.abspath("static/img/users")

so erhalten Sie einen vollständigen Pfad:

print(upload_folder)

wird der folgende Pfad angezeigt:

>>>/Users/myUsername/PycharmProjects/OBS/static/img/user

CodeJaeger.com

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.

Powered by:

X