web-dev-qa-db-fra.com

Utilisez readline pour lire le fichier texte python 3

J'y travaille depuis des heures et je n'arrive pas à bien faire les choses, toute aide serait appréciée! Ma question est de savoir comment utiliser la fonction .readline() pour lire jusqu'à la fin d'un fichier texte? Je sais que .readlines() fonctionne également mais j'essaie de traiter une ligne à la fois.

Voici ce que j'ai jusqu'à présent pour mon code:

    a = open("SampleTxt.txt","r")

    While True:

        a.readline()

Mon problème est que j'obtiens une boucle infinie lorsque je lance ceci, ne devrait-il pas s'arrêter une fois qu'il ne peut plus lire une ligne?

15
Code971

a.readline() renverra '' une chaîne vide lorsqu'il n'y a plus de données disponibles, vous devez vérifier cela puis casser votre while, par exemple:

while True:
    line = a.readline()
    if not line: 
        break

Si ce n'est pas uniquement à des fins d'apprentissage, vous devriez vraiment utiliser une instruction with et for-loop pour traiter le fichier, ligne par ligne:

with open('SampleTxt.txt') as fin:
    for line in fin:
        pass # do something

Votre intention est plus claire, et en utilisant le bloc with, le fileobj sera publié sur une exception ou à la fin du bloc.

24
Jon Clements