Heim > Artikel > Backend-Entwicklung > So ermitteln Sie mit Python, ob eine Datei vorhanden ist
Normalerweise müssen Sie vor dem Lesen oder Schreiben einer Datei feststellen, ob die Datei oder das Verzeichnis vorhanden ist, da sonst bestimmte Verarbeitungsmethoden zu Programmfehlern führen können. Daher ist es am besten, vor dem Ausführen eines Vorgangs festzustellen, ob die Datei vorhanden ist.
Hier stellen wir drei Methoden vor, um mithilfe des OS-Moduls, der Try-Anweisung bzw. des Pathlib-Moduls festzustellen, ob eine Datei oder ein Ordner vorhanden ist.
1. Verwenden Sie das Betriebssystemmodul
Die Methode os.path.exists() im Betriebssystemmodul wird verwendet, um zu überprüfen, ob die Datei vorhanden ist.
Beurteilen Sie, ob die Datei vorhanden ist
import os os.path.exists(test_file.txt) #True os.path.exists(no_exist_file.txt) #False
Beurteilen Sie, ob der Ordner vorhanden ist
import os os.path.exists(test_dir) #True os.path.exists(no_exist_dir) #False
Es ist ersichtlich, dass mit der Methode os.path.exists() Dateien und Ordner beurteilt werden ist das gleiche.
Tatsächlich gibt es bei dieser Methode immer noch ein Problem. Angenommen, Sie möchten überprüfen, ob die Datei „test_data“ vorhanden ist, aber unter dem aktuellen Pfad befindet sich ein Ordner mit dem Namen „test_data“, sodass es zu einer Fehleinschätzung kommen kann . Um diese Situation zu vermeiden, können Sie Folgendes tun:
Überprüfen Sie nur die Datei
import os os.path.isfile("test-data")
Wenn die Datei „test-data“ mit dieser Methode nicht existiert, wird „False“ zurückgegeben. andernfalls wird True zurückgegeben.
Auch wenn die Datei vorhanden ist, müssen Sie möglicherweise dennoch feststellen, ob die Datei gelesen und geschrieben werden kann.
Zurück zum Anfang
Bestimmen Sie, ob die Datei gelesen und geschrieben werden kann
Verwenden Sie die Methode os.access(), um zu bestimmen, ob die Datei gelesen und geschrieben werden kann.
Syntax:
os.access(path, mode)
Pfad ist der Dateipfad, Modus ist der Betriebsmodus, es gibt mehrere Typen:
os.F_OK: Überprüfen Sie, ob die Datei existiert;
os.R_OK: Prüfen Sie, ob die Datei lesbar ist;
os.W_OK: Prüfen Sie, ob die Datei geschrieben werden kann;
os.X_OK: Prüfen Sie, ob die Datei ausgeführt werden kann
Die Methode gibt „True“ oder „False“ zurück, indem sie ermittelt, ob der Dateipfad vorhanden ist und welche Berechtigungen verschiedene Zugriffsmodi haben.
import os if os.access("/file/path/foo.txt", os.F_OK): print "Given file path is exist." if os.access("/file/path/foo.txt", os.R_OK): print "File is accessible to read" if os.access("/file/path/foo.txt", os.W_OK): print "File is accessible to write" if os.access("/file/path/foo.txt", os.X_OK): print "File is accessible to execute"
2. Verwenden Sie die Try-Anweisung
, um direkt mit der open()-Methode im Programm zu prüfen, ob die Datei vorhanden und les- und beschreibbar ist.
Syntax:
open()
Wenn die von Ihnen geöffnete Datei nicht existiert, gibt das Programm einen Fehler aus. Verwenden Sie die try-Anweisung, um diesen Fehler abzufangen.
Das Programm kann nicht auf die Datei zugreifen.
Wenn die von Ihnen geöffnete Datei nicht existiert, wird eine FileNotFoundError-Ausnahme ausgelöst.
Die Datei existiert , aber es gibt keine Berechtigung. Access löst eine PersmissionError-Ausnahme aus.
Sie können also den folgenden Code verwenden, um festzustellen, ob die Datei vorhanden ist:
try: f =open() f.close() except FileNotFoundError: print "File is not found." except PersmissionError: print "You don't have permission to access this file."
Tatsächlich ist es nicht erforderlich, jede Ausnahme so detailliert zu behandeln. Die beiden oben genannten Ausnahmen sind Unterklassen von IOError . So kann das Programm vereinfacht werden:
try: f =open() f.close() except IOError: print "File is not accessible."
Verwenden Sie die try-Anweisung, um Urteile zu fällen, und es ist sehr einfach und elegant, alle Ausnahmen zu behandeln. Und im Vergleich zu anderen besteht keine Notwendigkeit, weitere externe Module einzuführen.
3. Verwenden Sie das Pathlib-Modul
Das Pathlib-Modul ist ein integriertes Modul in der Python3-Version, aber in Python2 müssen Module von Drittanbietern separat installiert werden.
Die Verwendung von pathlib erfordert zunächst die Verwendung des Dateipfads, um ein Pfadobjekt zu erstellen. Dieser Pfad kann ein Dateiname oder ein Verzeichnispfad sein.
Überprüfen Sie, ob der Pfad existiert
path = pathlib.Path("path/file") path.exist()
Überprüfen Sie, ob der Pfad eine Datei ist
path = pathlib.Path("path/file") path.is_file()
Das obige ist der detaillierte Inhalt vonSo ermitteln Sie mit Python, ob eine Datei vorhanden ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!