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)
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)
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)
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)
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!