Utilizzando i moduli buffer (StringIO, BytesIO, cStringIO) possiamo impersonare dati stringa o bytes come un file. Questi moduli buffer ci aiutano a imitare i nostri dati come un normale file che possiamo ulteriormente usare per l’elaborazione.
Fino a python2.7 usavamo cStringIO o StringIO mentre trattavamo questi dati steam.Now in Python 3.x, stiamo usando io.StringIO o io.BytesIO dal modulo io, dato che i moduli StringIO e cStringIO non sono più disponibili in Python 3.x.
In Python 2..7 il modulo StringIO era in grado di gestire sia il Byte che l’Unicode, ma in python3 dovrete usare separatamente BytesIO per gestire le stringhe Byte e StringIO per gestire le stringhe Unicode.
- io.StringIO richiede una stringa Unicode.
- io.BytesIO richiede una stringa byte.
- StringIO.StringIO permette sia stringhe Unicode che Byte.
- cStringIO.StringIO richiede una stringa codificata come stringa byte.
Qui c’è un semplice esempio usando il modulo io
Qui ogni successiva scrittura aggiunge i dati nell’oggetto stream proprio come il file
Questi metodi richiedono menzioni speciali:
getvalue()
Ricerca l’intero contenuto del file” in qualsiasi momento prima che venga chiamato il metodo close() dell’oggetto file.
chiudi()
Libera il buffer di memoria e il lavoro fatto con l’oggetto buffer.
seek()
Puoi usare seek per spostare il cursore sui dati come seek(0) per l’inizio del file