Si la raison pour laquelle vous vérifiez est que vous pouvez faire quelque chose comme if file_exists: open_it()
il est plus sûr d'utiliser un try
autour de la tentative d'ouverture. Vérifier puis ouvrir risque d'entraîner la suppression ou le déplacement du fichier entre le moment où vous vérifiez et celui où vous essayez de l'ouvrir.
Si vous ne prévoyez pas d'ouvrir le fichier immédiatement, vous pouvez utiliser la fonction os.path.isfile
Retourner à True
si le chemin est un fichier régulier existant. Ceci suit les liens symboliques, donc les deux islink() y isfile() peuvent être vraies pour le même chemin.
import os.path
os.path.isfile(fname)
si vous voulez être sûr que c'est un fichier.
À partir de Python 3.4, la fonction pathlib
module offre une approche orientée objet (rétroportée vers pathlib2
dans Python 2.7) :
from pathlib import Path
my_file = Path("/path/to/file")
if my_file.is_file():
# file exists
Pour vérifier un répertoire, faites :
if my_file.is_dir():
# directory exists
Pour vérifier si un Path
existe indépendamment du fait qu'il s'agisse d'un fichier ou d'un répertoire, utilisez la fonction exists()
:
if my_file.exists():
# path exists
Vous pouvez également utiliser resolve(strict=True)
dans un try
bloc :
try:
my_abs_path = my_file.resolve(strict=True)
except FileNotFoundError:
# doesn't exist
else:
# exists
9 votes
Pour vérifier si un objet Path existe indépendamment du fait qu'il s'agisse d'un fichier ou d'un répertoire, utilisez
my_path.exists()
.0 votes
my_path.exists()
n'est pas suffisant.my_path.is_file()
vous dira si c'est un fichier (ce qui peut être utile pour la lecture). Mais si vous voulez créer le fichier, vous devez aussi vérifierexists
afin d'exclure les répertoires ou d'autres éléments non liés aux fichiers dans le système de fichiers qui provoqueront l'échec.0 votes
6462 votes ? ?? WAT ?? Lire à ce sujet dans le livre de programmation