5.18 xreadlines -- Iterazione efficiente su un file

Nuovo nella versione 2.1.

Deprecato dalla versione 2.3 di Python. Usate "for line in file".

Questo modulo definisce un nuovo tipo di oggetto che può iterare in maniera efficiente sulle righe di un file. Un oggetto xreadlines è un tipo sequenza che implementa una semplice indicizzazione ordinata a partire da 0, come richiesto dall'istruzione for o dalla funzione filter().

Percui il codice

import xreadlines, sys

for line in xreadlines.xreadlines(sys.stdin):
    pass

ha più o meno la stessa velocità di esecuzione e lo stesso utilizzo di memoria di

while 1:
    lines = sys.stdin.readlines(8*1024)
    if not lines: break
    for line in lines:
        pass

anche se nel primo caso viene mantenuta la chiarezza dell'istruzione for.

xreadlines( fileobj)
Restituisce un nuovo oggetto xreadlines che itererà sul contenuto di fileobj. fileobj deve possedere un metodo readlines() che supporti il parametro sizehint. Note: Poiché il metodo readlines() bufferizza i dati, di fatto verranno ignorati gli effetti causati dall'impostazione non bufferizzata dell'oggetto file.

Un oggetto xreadlines s supporta la seguente operazione sulle sequenze:

Operazione  Risultato 
s[i] i-esima riga di s

Se valori successivi di i non sono sequenziali a partire da 0, questo codice solleverà un'eccezione RuntimeError.

Dopo aver letto l'ultima riga del file, questo codice solleverà un'eccezione IndexError.

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.