Question

Comment créer un objet de type fichier (même type de fichier que le fichier) avec le contenu d'une chaîne?

Était-ce utile?

La solution

Pour Python 2.x, utilisez le module StringIO . Par exemple:

>>> from cStringIO import StringIO
>>> f = StringIO('foo')
>>> f.read()
'foo'

J'utilise cStringIO (ce qui est plus rapide), mais notez qu'il ne n'accepte pas les caractères Unicode. chaînes qui ne peuvent pas être codées sous forme de chaînes ASCII simples . (Vous pouvez passer à StringIO en remplaçant "de cStringIO" par "de StringIO".)

Pour Python 3.x, utilisez le io module.

f = io.StringIO('foo')

Autres conseils

En Python 3.0:

import io

with io.StringIO() as f:
    f.write('abcdef')
    print('gh', file=f)
    f.seek(0)
    print(f.read())

Deux bonnes réponses. J'ajouterais un petit truc: si vous avez besoin d'un objet fichier réel (certaines méthodes en attendent un, pas seulement une interface), voici un moyen de créer un adaptateur:

Ceci fonctionne pour Python2.7 et Python3.x:

io.StringIO(u'foo')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top