Maison >développement back-end >Tutoriel Python >Pourquoi mon itération de fichier Python échoue-t-elle lors des tentatives ultérieures ?
Problème d'itération de fichier avec tentatives ultérieures
L'itération sur un fichier à l'aide de la boucle for est largement utilisée en Python pour traiter les données ligne par ligne. Cependant, un problème intrigant survient lorsque vous essayez d'itérer plusieurs fois sur le même fichier.
Lorsque vous tentez d'itérer sur un fichier ouvert une deuxième fois, la méthode readlines() ne produit aucun résultat, même si la lecture de l'intégralité du fichier a réussi. sur l'itération initiale. Pour résoudre ce problème, il devient nécessaire soit de fermer le fichier et de le rouvrir, soit d'utiliser f.seek(0) pour réinitialiser le pointeur de fichier.
Comprendre ce comportement implique de reconnaître que l'opération initiale readlines() lit le fichier entier en mémoire. Cela signifie que lorsque vous essayez d'itérer une deuxième fois, il n'y a plus de données à lire car le pointeur de fichier a atteint la fin.
Pour éviter de telles limitations, pensez à utiliser la syntaxe with, qui gère automatiquement la fermeture du fichier. La modification suivante garantit une itération appropriée :
with open('baby1990.html', 'rU') as f: for line in f: print(line)
Cette approche garantit que le fichier est automatiquement fermé une fois le bloc terminé, permettant ainsi plusieurs itérations réussies sans avoir besoin de fermeture et de réouverture manuelles.
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!