Come avvolgo una stringa in un file in Python?
Domanda
Come posso creare un oggetto simile a un file (stesso tipo di anatra di File) con il contenuto di una stringa?
Soluzione
Per Python 2.x, utilizzare il modulo StringIO . Ad esempio:
>>> from cStringIO import StringIO
>>> f = StringIO('foo')
>>> f.read()
'foo'
Uso cStringIO (che è più veloce), ma nota che accetta Unicode stringhe che non possono essere codificate come semplici stringhe ASCII . (Puoi passare a StringIO modificando " da cStringIO " in " da StringIO " ;.)
Per Python 3.x, utilizzare io
modulo.
f = io.StringIO('foo')
Altri suggerimenti
In Python 3.0:
import io
with io.StringIO() as f:
f.write('abcdef')
print('gh', file=f)
f.seek(0)
print(f.read())
Due buone risposte. Aggiungerei un piccolo trucco: se hai bisogno di un vero oggetto file (alcuni metodi prevedono uno, non solo un'interfaccia), ecco un modo per creare un adattatore:
Funziona con Python2.7 e Python3.x:
io.StringIO(u'foo')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow