Maison > Article > développement back-end > Pourquoi « os.listdir » provoque-t-il « FileNotFoundError » lors de l'ouverture de fichiers ?
FileNotFoundError lors de l'itération sur des fichiers avec os.listdir
Lors de l'itération sur des fichiers dans un répertoire à l'aide de os.listdir, il est possible de rencontrer un FileNotFoundError même si le fichier existe. En effet, os.listdir renvoie uniquement le nom du fichier, pas le chemin complet du fichier.
import os path = r'E:/somedir' for filename in os.listdir(path): f = open(filename, 'r') ... # process the file
Dans cet exemple, Python renvoie une FileNotFoundError même si le fichier existe car le nom du fichier ne contient que le nom du fichier, tel que « foo.txt », au lieu du chemin complet, tel que « E:/somedir/foo.txt ».
Pour résoudre ce problème, utilisez os.path.join pour ajouter le chemin du répertoire à le nom du fichier :
path = r'E:/somedir' for filename in os.listdir(path): with open(os.path.join(path, filename)) as f: ... # process the file
De plus, il est recommandé d'utiliser un gestionnaire de contexte avec une instruction pour ouvrir les fichiers, car il garantit que le fichier est correctement fermé une fois terminé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!