Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-11-20 03:54:01
original
890 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal