• # A tatons

    Posté par . En réponse au message Question boucle. Évalué à 2.

    Pas besoin d'être grinçant, c'est bien read() qui pose "problème" ici.

    La doc de de python est peu claire sur la notion de curseur avec read() dans le module de base IO :

    https://docs.python.org/3/library/io.html?highlight=read#io.IOBase

    Rien n'y est indiqué sur un curseur à part que l'objet IO est un stream, cela peut donc prêter à confusion.

    Pis bon, lire un fichier x bytes à la fois avec while, c'est bien pour "optimiser" ou si on est pas sur de ce qu'il y a dans le fichier ou si on veut se la jouer "je viens du C".

    Sauf que open() propose une option de buffer qui optimise déjà la chose.

    Donc, si on veut JUSTE lire un fichier, avec une politique simple et stupide :
    On transforme f en liste, et fait une itération de celle-ci :

    with open('/usr/share/dict/french', 'r', 100) as f: 
     for line in list(f) :
     print(line, end="")
    

    ... on peut même se passer de list(), python se charge de la transformation si il voit une boucle.

    La doc de python est touffue, très touffue, pour ne pas dire barbue; heureusement que son tutoriel l'est moins.