4.9.1.5 Oggetti StreamRecoder

La classe StreamRecoder fornisce una visione frontend - backend dei dati in codifica, qualche volta utile quando ci si trova a gestire differenti ambienti di codifica.

La sua struttura � tale che possiate utilizzare le funzioni factory restituite dalla funzione lookup() per costruire l'istanza.

class StreamRecoder( stream, encode, decode, Reader, Writer, errors)
Crea una instanza StreamRecoder che implementa una conversione a due vie: encode e decode lavorano sul frontend (l'input a read() e l'output a write()) mentre Reader e Writer lavorano sul backend (lettura e scrittura sul flusso).

Possono venire usati questi oggetti per eseguire una trasparente, diretta, ricodifica da, per esempio, Latin-1 a UTF-8 e viceversa.

stream deve essere un oggetto simile a file.

encode e decode devono aderire all'interfaccia Codec, Reader e Writer devono essere funzioni di base o classi in grado di fornire oggetti rispettivamente delle interfacce StreamReader e StreamWriter.

encode e decode sono necessarie per la traduzione del frontend, Reader e Writer per la traduzione del backend. Il formato intermedio usato viene determinato dai due insiemi di codec, per esempio il codec Unicode user� Unicode come codifica intermedia.

La gestione degli errori viene fatta nello stesso modo di quello definito per i flussi di lettura e scrittura.

Le istanze StreamRecoder definiscono le interfacce combinate delle classi StreamReader e StreamWriter. Ereditano tutti gli altri metodi ed attributi del flusso sottostante.

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