Maison  >  Article  >  développement back-end  >  Pourquoi « os.listdir » provoque-t-il « FileNotFoundError » lors de l'ouverture de fichiers ?

Pourquoi « os.listdir » provoque-t-il « FileNotFoundError » lors de l'ouverture de fichiers ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-20 03:54:01821parcourir

Why Does `os.listdir` Cause `FileNotFoundError` When Opening Files?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn