Maison > développement back-end > Tutoriel Python > Pourquoi l'itération répétée sur un fichier Python échoue-t-elle et comment puis-je y remédier ?

Pourquoi l'itération répétée sur un fichier Python échoue-t-elle et comment puis-je y remédier ?

Susan Sarandon
Libérer: 2024-11-28 19:46:16
original
292 Les gens l'ont consulté

Why Does Iterating Over a Python File Multiple Times Fail, and How Can I Fix It?

Itérer plusieurs fois dans un fichier

En Python, parcourir un fichier à l'aide de readlines() lit l'intégralité du fichier en mémoire et le stocke sous forme de liste de lignes. Lorsque vous parcourez à nouveau le fichier, Python a déjà atteint la fin du fichier, il n'y a donc plus rien à lire.

Comportement normal

Oui, c'est un comportement normal pour que l'itération sur un fichier plusieurs fois échoue à moins que vous ne réinitialisiez l'itération. En effet, le fichier IO de Python fonctionne de manière séquentielle, se déplaçant du début du fichier à la fin lors de la première itération.

Réinitialisation de l'itération

Pour réinitialiser l'itération et relisez le fichier, vous avez deux options :

  1. Utiliser f.seek(0) : Cette méthode vous permet de réinitialiser le curseur du fichier au début du fichier.
  2. Fermer et rouvrir le fichier : Fermer le fichier (f. close()) puis le rouvrir avec le mode 'r' (pour la lecture) relancera l'itération depuis le début encore une fois.

Utilisation de l'instruction with

Une approche plus pratique consiste à utiliser l'instruction with, qui ferme automatiquement le fichier lorsque vous quittez le bloc de code. Cela vous permet de parcourir le fichier à plusieurs reprises sans le fermer et le rouvrir explicitement :

with open('baby1990.html', 'rU') as f:
    for line in f:
        print(line)
Copier après la connexion

En utilisant l'instruction with, vous pouvez exécuter le bloc de code plusieurs fois et lire le fichier à chaque fois sans vous soucier de réinitialiser le fichier. itération.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal