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.