Maison > développement back-end > Tutoriel Python > Pourquoi itérer deux fois sur un fichier Python produit-il des résultats inattendus ?

Pourquoi itérer deux fois sur un fichier Python produit-il des résultats inattendus ?

Patricia Arquette
Libérer: 2024-12-06 04:19:09
original
739 Les gens l'ont consulté

Why Does Iterating Over a Python File Twice Produce Unexpected Results?

Itérer deux fois sur un fichier : comprendre le mécanisme d'itération de fichiers de Python

En Python, itérer sur un fichier implique de lire ligne par ligne à l'aide d'une boucle construction. Cependant, tenter de parcourir le même fichier une deuxième fois donne souvent un résultat inattendu : aucune sortie.

Ce comportement est dû au mécanisme d'itération de fichier sous-jacent dans Python. Lorsque vous exécutez la première boucle :

for line in f.readlines():
    print(line)
Copier après la connexion

le fichier est lu jusqu'à sa fin. Ceci est analogue à la lecture d’un lecteur de cassette jusqu’à la fin de la cassette. Une fois la fin atteinte, il n'y a plus de données à lire.

Pour parcourir à nouveau le fichier, vous devez réinitialiser le pointeur du fichier au début. Ceci peut être réalisé de deux manières :

1. Utilisation de f.seek(0) :

f.seek(0)
for line in f.readlines():
    print(line)
Copier après la connexion

L'appel de f.seek(0) repositionne le pointeur de fichier au début du fichier, vous permettant de le relire.

2. Fermeture et réouverture du fichier :

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

La fermeture et la réouverture du fichier réinitialisent automatiquement le pointeur du fichier au début.

Alternative : utilisation avec Block :

L'instruction with offre un moyen plus pratique et plus sûr de travailler avec files :

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

Dans le bloc with, le fichier est automatiquement fermé à la sortie du bloc, quelles que soient les exceptions ou les boucles. Cela élimine le besoin de gestion manuelle des fichiers.

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