Hallo, zuerst sollten Sie die Funktionen os.path.abspath (Pfad) und os.path.relpath (Pfad) verstehen.
Kurz gesagt, os.path.abspath (Pfad) erstellt einen relativen Pfad zum absoluten Pfad . Und wenn der angegebene Pfad selbst ein absoluter Pfad ist, gibt die Funktion denselben Pfad zurück.
In ähnlicher Weise erstellt os.path.relpath (Pfad) einen absoluten Pfad zum relativen Pfad . Wenn der angegebene Pfad selbst ein relativer Pfad ist, gibt die Funktion denselben Pfad zurück.
Mit dem folgenden Beispiel können Sie das obige Konzept richtig verstehen :
Angenommen, ich habe eine Datei input_file_list.txt, die eine Liste der Eingabedateien enthält, die von meinem Python-Skript verarbeitet werden sollen.
D: \ conc \ input1.dic
D: \ conc \ input2.dic
D: \ Copyioconc \ input_file_list.txt
Wenn Sie über Ordnerstruktur sehen, input_file_list.txt in Gegenwart ist Copyofconc Ordner und Dateien , die von dem Python - Skript verarbeitet werden sollen , die in Konz Ordner
Der Inhalt der Datei input_file_list.txt ist jedoch wie folgt :
.. \ conc \ input1.dic
.. \ conc \ input2.dic
Und mein Python-Skript ist in Laufwerk D: vorhanden .
Der in der Datei input_file_list.txt angegebene relative Pfad ist relativ zum Pfad der Datei input_file_list.txt .
Wenn das Python-Skript das aktuelle Arbeitsverzeichnis ausführen soll (verwenden Sie os.getcwd () , um den Pfad abzurufen ).
Da mein relativer Pfad ist relativ zu input_file_list.txt , das heißt „D: \ Copyofconc“ , ich habe das aktuelle Arbeitsverzeichnis ändern „D: \ Copyofconc“ .
Also muss ich os.chdir ('D: \ Copyofconc') verwenden , damit das aktuelle Arbeitsverzeichnis "D: \ Copyofconc" ist .
Um nun die Dateien input1.dic und input2.dic zu erhalten , lese ich die Zeilen ".. \ conc \ input1.dic" und verwende dann den Befehl
input1_path = os.path.abspath ('.. \ conc \ input1.dic') (um den relativen Pfad in den absoluten Pfad zu ändern. Hier lautet das aktuelle Arbeitsverzeichnis "D: \ Copyofconc", die Datei ". \ conc \ input1. Auf dic "wird relativ zu" D: \ Copyofconc "zugegriffen.
so input1_path wird "D: \ Konz \ input1.dic"