Maison >développement back-end >Tutoriel Python >Pourquoi `open()` en Python génère-t-il une `FileNotFoundError` et comment puis-je y remédier ?

Pourquoi `open()` en Python génère-t-il une `FileNotFoundError` et comment puis-je y remédier ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-04 03:22:39285parcourir

Why Does `open()` in Python Throw a `FileNotFoundError`, and How Can I Fix It?

La résolution de "open() donne FileNotFoundError / IOError" pour des fichiers inexistants

Lorsque vous essayez de charger des fichiers à l'aide de la fonction open() en Python, vous pouvez rencontrer un message " Erreur FileNotFoundError / IOError" avec le message "[Errno 2] Aucun fichier ou répertoire de ce type." Cette erreur signifie l'incapacité du script à localiser le fichier spécifié.

Pour approfondir la cause première, il est crucial de comprendre comment Python localise les fichiers :

  • Chemin absolu : Commence par le répertoire racine de l'ordinateur, tel que 'C:Pythonscripts' dans Windows.
  • Chemin relatif : Ne démarre pas par le répertoire racine et est relatif au "répertoire de travail".

Lors de l'utilisation de open('recentlyUpdated. yaml'), Python suppose un chemin relatif et recherche dans le répertoire de travail actuel. Pour diagnostiquer le problème :

  • Vérifiez l'existence du fichier : Utilisez os.listdir() pour répertorier les fichiers dans le répertoire de travail actuel et assurez-vous que le fichier avec l'extension correcte existe.
  • Confirmer le répertoire actuel : Utilisez os.getcwd() pour vérifier le répertoire attendu, car le code lancé depuis un IDE peut avoir un fonctionnement différent répertoire.

Résolutions :

  1. Modifier le répertoire de travail actuel : Utilisez os.chdir(dir) pour accéder au répertoire contenant le fichier, puis ouvrez-le avec open("file.txt").
  2. Fournissez le chemin absolu : Spécifiez le chemin complet au fichier dans l'appel ouvert, tel que open(r'C:Folderfile.txt').

Remarque :

  • Utilisez des chaînes brutes (r"") pour les chemins avec des barres obliques inverses, par exemple r'C:Python32'.
  • Les barres obliques fonctionnent sous Windows 'C:/Python32' et ne nécessitent pas d'échappement.
  • Exemple : en supposant que file.txt se trouve dans le dossier C:, vous pouvez l'ouvrir en tant que :

    • os .chdir(r'C:Folder')
      open('file.txt') # relatif chemin
    • open(r'C:Folderfile.txt') # chemin absolu

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