Fichier introuvable : gestion de 'FileNotFoundError' en Python
Tentative d'ouvrir un fichier nommé 'recentlyUpdated.yaml' à l'aide de 'open( 'recentlyUpdated.yaml')' peut entraîner un « FileNotFoundError » ou « IOError » indiquant « Aucun fichier ou répertoire de ce type ». Ce problème survient en raison du mécanisme de recherche de fichiers de Python.
Comprendre les chemins d'accès aux fichiers
Python recherche des fichiers en fonction du concept de chemins :
-
Chemin absolu : Commence par le répertoire racine (par exemple, C:Pythonscripts sous Windows)
-
Chemin relatif : Ne commence pas par le répertoire racine mais est relatif au répertoire de travail actuel
Dépannage l'erreur
Pour diagnostiquer l'erreur problème :
-
Existence du fichier : Vérifiez que 'recentlyUpdated.yaml' existe et a l'extension de fichier correcte.
-
Répertoire de travail : Assurez-vous que vous êtes dans le répertoire attendu en utilisant 'os.getcwd()'. (Si vous lancez du code à partir d'un IDE, vous vous trouvez peut-être dans un répertoire différent.)
Résoudre le problème
Une fois le problème diagnostiqué, vous pouvez le résoudre en :
-
Modification du répertoire de travail :Utilisation 'os.chdir(dir)' pour accéder au répertoire contenant le fichier, puis l'ouvrir en utilisant son nom (par exemple, 'open("file.txt")').
-
Spécification du chemin absolu : Fournissez le chemin absolu du fichier dans l'appel 'open' (par exemple, 'open(r'C:Folderfile.txt')').
Conseils supplémentaires
- Utilisez des « chaînes brutes » pour les chemins contenant des barres obliques inverses (par exemple, « r'C:Folder »).
- Les barres obliques fonctionnent également sous Windows ("C:/Folder") sans avoir besoin de s'échapper.
Exemple
Si 'file.txt' se trouve dans C:Folder, vous pouvez ouvrir il en utilisant :
os.chdir(r'C:\Folder')
open('file.txt') # relative path
or
open(r'C:\Folder\file.txt') # absolute path
Copier après la connexion
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!