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.