Hoe te controleren of een bestand bestaat in Python

  1. try...except om het bestand te controleren (> Python 2.x)
  2. os.path.isfile() om te controleren of het bestand bestaat (> = Python 2.x)
  3. pathlib.Path.is_file() om te controleren of het bestand bestaat (> = Python 3.4)

Deze tutorial introduceert drie verschillende oplossingen om te controleren of een bestand bestaat in Python.

  1. try...except blokkeren om het bestand te controleren (> = Python 2.x)
  2. os.path.isfile functie om het bestand te controleren (> = Python 2.x)
  3. pathlib.Path.is_file() controleer het bestand bestaan ​​(> = Python 3.4)

try...except om het bestand te controleren (> Python 2.x)

We kunnen proberen het bestand te openen en kunnen controleren of het bestand bestaat of niet, afhankelijk van of de IOError (in Python 2.x) of FileNotFoundError (in Python 3.x) wordt weggegooid of niet.

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 de bovenstaande voorbeeldcodes maken we het Python 23 compatibel door beide FileNotFoundError en IOError in het uitzonderingsvangende deel op te sommen.

os.path.isfile() om te controleren of het bestand bestaat (> = Python 2.x)

import os
fileName = r"C:\Test\test.txt"
os.path.isfile(fileName)

Het controleert of het bestand fileName bestaat.

Waarschuwing

Sommige ontwikkelaars geven er de voorkeur aan om os.path.exists() te controleren of een bestand bestaat. Maar het kon niet onderscheiden of het object een bestand of een map is.

import os
fileName = r"C:\Test\test.txt"
os.path.exists(fileName)
#Out: True
fileName = r"C:\Test"
os.path.exists(fileName)
#Out: True

Gebruik daarom alleen os.path.isfile als u wilt controleren of het bestand bestaat.

pathlib.Path.is_file() om te controleren of het bestand bestaat (> = Python 3.4)

Sinds Python 3.4 introduceert het een objectgeoriënteerde methode in de pathlib module om te controleren of er een bestand bestaat.

from pathlib import Path

fileName = r"C:\Test\test.txt"
fileObj = Path(fileName)
fileObj.is_file()

Evenzo heeft het ook is_dir() en exists() methoden om te controleren of een map of een bestand / map bestaat.

Gerelateerde Artikelen - Python File

  • Alle bestanden van een map ophalen
  • Een bestand en map verwijderen
  • Hoe tekst aan een bestand in Python toe te voegen