Comment vérifier si un fichier existe en Python

  1. try/except pour vérifier l’existence du fichier (>Python 2.x)
  2. os.path.isfile() pour vérifier si le fichier existe (>=Python 2.x)
  3. pathlib.Path.is_file() pour vérifier si le fichier existe (>=Python 3.4)

Ce tutoriel présente trois solutions différentes pour vérifier si un fichier existe en Python.

  1. Bloc try/except pour vérifier l’existence du fichier (>=Python 2.x)
  2. Fonction os.path.isfile pour vérifier l’existence du fichier (>=Python 2.x)
  3. pathlib.Path.is_file() vérifie l’existence du fichier (>=Python 3.4)

try/except pour vérifier l’existence du fichier (>Python 2.x)

Nous pourrions essayer d’ouvrir le fichier et vérifier si le fichier existe ou non selon que IOError (en Python 2.x) ou FileNotFoundError (en Python 3.x) sera lancé ou non.

def checkFileExistance(filePath):
    try:
        with open(filePath, 'r') as f:
            return True
    except FileNotFoundError as e:
        return False
    except IOError as e:
        return False

Dans l’exemple de code ci-dessus, nous le rendons compatible avec Python 23 en listant à la fois FileNotFoundError et IOError dans la partie de capture des exceptions.

os.path.isfile() pour vérifier si le fichier existe (>=Python 2.x)

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

Il vérifie si le fichier fileName existe.

Attention

Certains développeurs préfèrent utiliser os.path.exists() pour vérifier si un fichier existe. Mais il ne peut pas distinguer si l’objet est un fichier ou un répertoire.

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

Par conséquent, n’utilisez os.path.isfile que si vous voulez vérifier si le fichier existe.

pathlib.Path.is_file() pour vérifier si le fichier existe (>=Python 3.4)

Depuis Python 3.4, il introduit une méthode orientée objet dans le module pathlib pour vérifier si un fichier existe.

from pathlib import Path

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

De même, il a aussi les méthodes is_dir() et exists() pour vérifier si un répertoire ou un fichier/répertoire existe.

Article connexe - Python file-path

  • Comment supprimer un fichier et un répertoire en Python