Come controllare se un file esiste in Python

  1. try...except per verificare l’esistenza del file (> Python 2.x)
  2. os.path.isfile() per controllare se il file esiste (>=Python 2.x)
  3. pathlib.Path.is_file() per verificare se il file esiste (>=Python 3.4)

Questo tutorial introdurrà tre diverse soluzioni per verificare se un file esiste in Python.

  1. try\except blocco per verificare l’esistenza del file (>=Python 2.x)
  2. funzione os.path.isfile per controllare l’esistenza del file (>=Python 2.x)
  3. pathlib.Path.is_file() controlla l’esistenza del file (>=Python 3.4)

try...except per verificare l’esistenza del file (> Python 2.x)

Potremmo provare ad aprire il file e controllare se il file esiste o meno a seconda che venga lanciato o meno l’IOError (in Python 2.x) o FileNotFoundError (in Python 3.x).

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

Nei codici di esempio di cui sopra, lo rendiamo compatibile con Python 23 elencando sia FileNotFoundError che IOError nella parte di cattura delle eccezioni.

os.path.isfile() per controllare se il file esiste (>=Python 2.x)

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

Controlla se il file fileName esiste.

Attenzione

Alcuni sviluppatori preferiscono usare os.path.exists() per verificare se un file esiste. Ma non è in grado di distinguere se l’oggetto è un file o una directory.

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

Quindi, usare os.path.isfile solo se si vuole controllare se il file esiste.

pathlib.Path.is_file() per verificare se il file esiste (>=Python 3.4)

A partire da Python 3.4, introduce un metodo orientato agli oggetti nel modulo pathlib per controllare se un file esiste.

from pathlib import Path

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

Allo stesso modo, ha anche metodi is_dir() e exists() per verificare se esiste una directory o un file/cartella.

Articolo correlato - Python File

  • Cancella un file in Python
  • Leggi file in una stringa in Python