Wie man prüft, ob eine Datei in Python existiert
-
try...except
, die Datei existence zu prüfen (>Python 2.x) -
os.path.isfile()
um zu prüfen, ob die Datei existiert (>=Python 2.x) -
pathlib.Path.is_file()
um zu prüfen, ob die Datei existiert (>=Python 3.4)
Dieses Tutorial stellt drei verschiedene Lösungen vor, um zu prüfen, ob eine Datei in Python existiert.
try...except
Block, um die Existenz der Datei zu prüfen (>=Python 2.x)os.path.isfile
Funktion zur Überprüfung der Dateiexistenz (>=Python 2.x)pathlib.Path.is_file()
Prüfung der Dateiexistenz (>=Python 3.4)
try...except
, die Datei existence zu prüfen (>Python 2.x)
Wir könnten versuchen, die Datei zu öffnen und prüfen, ob die Datei existiert oder nicht, abhängig davon, ob der IOError
(in Python 2.x) oder FileNotFoundError
(in Python 3.x) geworfen wird oder nicht.
def checkFileExistance(filePath):
try:
with open(filePath, "r") as f:
return True
except FileNotFoundError as e:
return False
except IOError as e:
return False
In den obigen Beispielcodes machen wir es Python 2 / 3-kompatibel, indem wir sowohl FileNotFoundError
als auch IOError
im Exception-Catching-Teil auflisten.
os.path.isfile()
um zu prüfen, ob die Datei existiert (>=Python 2.x)
import os
fileName = "temp.txt"
os.path.isfile(fileName)
Es prüft, ob die Datei fileName
existiert.
Einige Entwickler ziehen es vor, os.path.exists()
zu benutzen, um zu prüfen, ob eine Datei existiert. Aber es könnte nicht unterscheiden, ob das Objekt eine Datei oder ein Verzeichnis ist.
import os
fileName = "temp.txt"
print(os.path.exists(fileName))
fileName = r"C:\Test"
print(os.path.exists(fileName))
Verwenden Sie daher nur os.path.isfile
, wenn Sie überprüfen wollen, ob die Datei existiert.
pathlib.Path.is_file()
um zu prüfen, ob die Datei existiert (>=Python 3.4)
Seit Python 3.4 führt es eine objektorientierte Methode im Modul pathlib
ein, um zu prüfen, ob eine Datei existiert.
from pathlib import Path
fileName = "temp.txt"
fileObj = Path(fileName)
print(fileObj.is_file())
Ähnlich hat es auch die Methoden is_dir()
und exists()
, um zu prüfen, ob ein Verzeichnis oder eine Datei/ein Verzeichnis existiert.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook