Domanda

Come posso creare un oggetto simile a un file (stesso tipo di anatra di File) con il contenuto di una stringa?

È stato utile?

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
scroll top