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

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

Susan Sarandon
Libérer: 2024-11-30 09:02:10
original
537 Les gens l'ont consulté

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

Comprendre l'exception FileNotFoundError lors de l'utilisation de os.listdir et open

En Python, lors d'une itération sur les fichiers d'un répertoire à l'aide de os.listdir, les utilisateurs peuvent rencontrer une FileNotFoundError. En effet, os.listdir renvoie uniquement le nom du fichier, pas le chemin complet.

Considérez le code suivant :

import os

path = r'E:/somedir'

for filename in os.listdir(path):
    f = open(filename, 'r')
Copier après la connexion

Lors de l'exécution de ce code, Python générera une FileNotFoundError, même si le le fichier existe. En effet, open attend le chemin complet du fichier, qui est « E:/somedir/foo.txt » lorsqu'il s'agit du fichier « foo.txt ».

Pour résoudre ce problème, utilisez os.path .join pour ajouter le répertoire au 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, le code peut fermer automatiquement le fichier à l'aide d'un bloc with.

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!

source:php.cn
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