Wie man prüft, ob eine Datei in Python existiert

  1. try...except, die Datei existence zu prüfen (>Python 2.x)
  2. os.path.isfile() um zu prüfen, ob die Datei existiert (>=Python 2.x)
  3. 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.

  1. try...except Block, um die Existenz der Datei zu prüfen (>=Python 2.x)
  2. os.path.isfile Funktion zur Überprüfung der Dateiexistenz (>=Python 2.x)
  3. 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 = r"C:\Test\test.txt"
os.path.isfile(fileName)

Es prüft, ob die Datei fileName existiert.

Warnung

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 = r"C:\Test\test.txt"
os.path.exists(fileName)
#Out: True
fileName = r"C:\Test"
os.path.exists(fileName)
#Out: True

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 = r"C:\Test\test.txt"
fileObj = Path(fileName)
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.

Verwandter Artikel - Python File

  • Wie man eine Datei in Python kopiert
  • Python Get Dateiname ohne Erweiterung aus Pfad