webentwicklung-frage-antwort-db.com.de

Verwendung von Absolute Path vs Relative Path in Python

Als Referenz. Der absolute Pfad ist der vollständige Pfad zu einem Ort auf Ihrem Computer. Der relative Pfad ist der Pfad zu einer Datei in Bezug auf Ihr aktuelles Arbeitsverzeichnis (PWD). Zum Beispiel:

Absoluter Pfad: C:/users/admin/docs/stuff.txt

Wenn meine PWD C:/users/admin/ lautet, lautet der relative Pfad zu stuff.txt: docs/stuff.txt

Beachten Sie, dass PWD + relativer Pfad = absoluter Pfad ist.

Cool, großartig. Jetzt habe ich ein paar Skripte geschrieben, die prüfen, ob eine Datei existiert.

os.chdir("C:/users/admin/docs") os.path.exists("stuff.txt")

Dies gibt TRUE zurück, wenn stuff.txt existiert und funktioniert .

Nun, stattdessen, wenn ich schreibe,

os.path.exists("C:/users/admin/docs/stuff.txt")

Dies gibt auch TRUE zurück.

Gibt es einen bestimmten Zeitpunkt, an dem wir einen über den anderen legen müssen? Gibt es eine Methode, wie Python nach Pfaden sucht? Versucht es einer zuerst dann der andere?

Vielen Dank!

4
samGon

Die größte Überlegung ist wahrscheinlich die Portabilität. Wenn Sie Ihren Code auf einen anderen Computer verschieben und auf eine andere Datei zugreifen müssen, wo befindet sich diese andere Datei? Wenn es sich im Verhältnis zu Ihrem Programm an derselben Stelle befindet, verwenden Sie eine relative Adresse. Wenn es sich an derselben absoluten Position befindet, verwenden Sie eine absolute Adresse.

3
Liam Bohl

Wenn Sie nicht wissen, von wo aus der Benutzer das Skript ausführen wird, ist es am besten, den absoluten Pfad auf dem System des Benutzers mit os und __file__ zu berechnen.

__file__ ist eine globale Variable, die in jedem Python-Skript festgelegt ist und den relativen Pfad zu der *.py-Datei zurückgibt, die sie enthält.

import os
my_absolute_dirpath = os.path.abspath(os.path.dirname(__file__))
1
Chris Conlan