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.
Il existe une variété d'erreurs liées aux entrées/sorties en Python, dont les plus courantes sont les trois suivantes.
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'
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'
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'
Dans certains cas, Python déclenchera également une exception OSError, ce qui signifie qu'un système d'exploitation général erreur.
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.
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')
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()
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
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')
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()
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.
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.')
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!