4.7.1.3 Objets StreamReader

La classe de StreamReader est une sous-classe de Codecet définit les méthodes suivantes que chaque lecteur de flux doit définir afin d'être compatible au registre de codecs de Python.

StreamReader(stream[, errors])
Constructeur pour une instance de StreamReader.

Tous les lecteurs de flux doivent fournir cette interface de constructeur. Ils sont libres d'ajouter des arguments mot-clés additionnels, mais seuls ceux définis ici sont employés par le registre de codecs de Python.

stream doit être a objet fichier (ou similaire) ouvert pour la lecture de données (binaires).

StreamReader peut mettre en application différents schémas de gestion d'erreurs en fournissant l'argument mot-clé errors. Ces paramètres sont définis:

read([taille])
Décode des données du flux et renvoie l'objet résultant.

taille indique le nombre maximum approximatif des octets pour lire le flux pour le décodage. Le décodeur peut modifier cet arrangement comme approprié. La valeur par défaut -1 indique pour lire et décoder autant que possible. taille est prévu pour empêcher de devoir décoder des fichiers énormes en une étape.

La méthode devrait employer une stratégie de lecture avide signifiant qu'elle devrait lire autant de données que permis dans la définition du codage et de la taille donnée, par exemple. Si les fins de codage facultatives ou les marqueurs d'état sont disponibles sur le flux, ceux-ci devraient être lus aussi.

readline([taille])
Lire une ligne du flux d'entrée et renvoyer les données décodées.

Note: À la différence de la méthode readlines(), cette méthode hérite de la connaissance de la rupture de ligne de la méthode du flux readline() -- il n'y a actuellement aucun soutien des lignes coupées à l'aide du décodeur de codec dû au manque de bufferisation de ligne. Les sous-classes devrait cependant, si possible, essayer d'implémenter cette méthode en utilisant leur propre connaissance de la rupture de ligne.

taille, si donné, est passé comme argument de taille à la méthode readline().

readlines([sizehint])
Lire toutes les lignes disponibles sur le flux d'entrée et les renvoyer comme liste de lignes.

Les coupures de lignes sont implémentées en utilisant la méthode du décodeur du codec et sont incluses dans la liste des entrées.

sizehint, si donné, est passé comme argument taille à la méthode read() du flux.

reset()
Remet à zéro les tampons de codec utilisés pour garder l'état.

Noter qu'aucun repositionnement de flux ne devrait avoir lieu. Cette méthode est principalement prévue pour pouvoir récupérer des erreurs de décodage.

En plus des méthodes ci-dessus, StreamReader doit également hériter de tous autres méthodes et attribut du flux.

Les deux prochaines classes basses sont incluses par convenance. Elles ne sont pas nécessaires pour le registre de codec, mais peuvent se révéler utile dans la pratique.