Maison > développement back-end > Tutoriel Python > IOError : Comment résoudre les erreurs d'entrée/sortie Python ?

IOError : Comment résoudre les erreurs d'entrée/sortie Python ?

王林
Libérer: 2023-06-24 19:04:08
original
3502 Les gens l'ont consulté

Python est un langage de programmation populaire largement utilisé pour le traitement et l'analyse de données hautement développées, et les erreurs d'entrée/sortie (IOError) sont l'une des erreurs courantes du programme Python. Lorsqu'un programme Python tente d'effectuer une opération telle que la lecture ou l'écriture d'un fichier, une IOError est générée si un problème lié aux entrées/sorties se produit. Cependant, cette erreur peut se produire même si vous suivez les étapes correctes de gestion des fichiers. Cet article explique comment résoudre les erreurs d'entrée/sortie Python.

Types d'erreurs IO

Il existe une variété d'erreurs liées aux entrées/sorties en Python, dont les plus courantes sont les trois suivantes.

1. FileNotFoundError

FileNotFoundError est déclenché lorsque Python essaie d'ouvrir un fichier mais ne parvient pas à le trouver. Cela est généralement dû à des chemins de fichiers incorrects, des noms ou extensions de fichiers incorrects, des fichiers inexistants et des problèmes de droits d'accès.

Par exemple :

>>> f = open('nonexistentfile.txt', 'r')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'nonexistentfile.txt'
Copier après la connexion

2 PermissionError

Si Python tente d'ouvrir un fichier sans autorisation d'accès, une exception PermissionError sera déclenchée. Cette erreur se produit généralement lorsque vous essayez de lire ou d'écrire dans un fichier protégé.

Par exemple :

>>> f = open('/etc/shadow', 'r')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [Errno 13] Permission denied: '/etc/shadow'
Copier après la connexion

3 IOError

Lorsque Python ne peut pas ouvrir un fichier, lire un fichier ou écrire un fichier, une exception IOError est soulevé . En bref, il s'agit d'une erreur liée aux opérations d'E/S. Cette erreur est généralement causée par le déplacement ou la suppression de fichiers.

Par exemple :

>>> f = open('testfile.txt', 'r')
[Errno 2] No such file or directory: 'testfile.txt'
Copier après la connexion

4 OSError

Dans certains cas, Python déclenchera également une exception OSError, ce qui signifie qu'un système d'exploitation général erreur.

Méthodes pour résoudre IOError

Maintenant que nous connaissons les types d'IOError les plus courants en Python, nous explorerons ensuite les méthodes permettant de résoudre ou d'éviter ces erreurs.

1. Recherchez les erreurs de saisie du chemin et du nom du fichier

Lorsque vous essayez d'ouvrir ou d'utiliser un fichier, assurez-vous que le chemin et le nom du fichier que vous saisissez sont corrects . Le chemin et le nom du fichier doivent correspondre au chemin et au nom de fichier réels. Si vous n'êtes pas sûr, assurez-vous d'abord que le fichier existe.

Par exemple :

f = open('/path/to/existing/file.txt', 'r')
Copier après la connexion

2. Confirmez que le descripteur de fichier est fermé

Qu'il s'agisse de lire ou d'écrire un fichier, après avoir utilisé le fichier, assurez-vous de fermer le descripteur de fichier. Cela libère des ressources système et garantit que les fichiers sont manipulés correctement. Si le descripteur de fichier n’est pas fermé correctement, une exception IOError peut être déclenchée.

Par exemple :

with open('testfile.txt', 'w') as f:
    f.write('Hello world')
f.close()
Copier après la connexion

3. Confirmez les autorisations d'accès aux fichiers

Lorsque vous essayez de lire ou d'écrire un fichier qui nécessite des autorisations d'accès, assurez-vous Le fichier a reçu les autorisations appropriées. Vous pouvez utiliser la commande chmod pour modifier les autorisations de fichier en lecture et en écriture.

Par exemple :

chmod 777 myfile.txt
Copier après la connexion

4. Confirmez que le fichier existe déjà

Lorsque Python tente d'ouvrir un répertoire ou un fichier situé dans un répertoire non- répertoire existant, il lancera une exception FileNotFoundError. Veuillez vous assurer que le fichier est créé et existe dans le chemin spécifié.

Par exemple :

f = open('testfile.txt', 'w')
Copier après la connexion

5. Gestion des exceptions

Si les exceptions ne sont pas gérées dans votre code, alors lorsqu'une erreur IOError se produit, Python le fera. l'interprète interrompt l'exécution du programme de manière incorrecte. Pour gérer les exceptions avec élégance, utilisez try except pour gérer IOError et rendre votre programme plus robuste.

Par exemple :

try:
    f = open('testfile.txt', 'r')
except IOError:
    print('Error: file not found.')
else:
    print(f.read())
    f.close()
Copier après la connexion

Dans l'exemple ci-dessus, lorsque le fichier n'est pas trouvé, l'IOError est interceptée et gérée afin que le programme n'interrompe pas l'exécution. Si le fichier existe, le fichier sera lu.

6. Utilisez le module os.path

Si vous utilisez Python 3.x, évitez d'utiliser la fonction os.path.exist() pour voir si le fichier existe. Dans Python 3.x, lorsque vous utilisez la fonction os.path.exist(), elle renvoie toujours True même si le fichier n'existe pas. Utilisez plutôt os.path.isfile() pour vérifier si le fichier existe.

Par exemple :

import os
  
if os.path.isfile('/path/to/file.txt'):
    print('File exists.')
else:
    print('File does not exist.')
Copier après la connexion

Conclusion

Dans cet article, nous avons découvert les types d'erreurs d'entrée/sortie en Python et leurs solutions. De nombreuses erreurs IOE courantes peuvent être évitées en suivant les étapes de gestion des fichiers appropriées, en s'assurant que les chemins et les noms de fichiers sont trouvés correctement et en confirmant les autorisations d'accès aux fichiers. De plus, l'utilisation de try except pour gérer les exceptions IOError peut gérer les IOErrors avec élégance et rendre le programme plus robuste.

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal