106 votes

Comment envelopper une chaîne dans un fichier en Python?

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

136voto

Daryl Spitzer Points 18304

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 n'accepte pas les chaînes Unicode 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".)

35voto

J.F. Sebastian Points 102961

En Python 3.0:

 import io

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

2voto

e-satis Points 146299

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:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X