Comment créer un objet de type fichier (même type de canard que File) avec le contenu d'une chaîne?
Pour Python 2.x, utilisez le module StringIO . Par exemple:
>>> from cStringIO import StringIO
>>> f = StringIO('foo')
>>> f.read()
'foo'
J'utilise cStringIO (qui est plus rapide), mais notez qu'il ne le fait pas accepte les chaînes Unicode qui ne peuvent pas être encodées en clair ASCII chaînes . (Vous pouvez passer à StringIO en remplaçant "de cStringIO" par "de StringIO".)
Pour Python 3.x, utilisez le module io
.
f = io.StringIO('foo')
Dans 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 une petite astuce - si vous avez besoin d'un véritable objet fichier (certaines méthodes en attendent un, pas seulement une interface), voici un moyen de créer un adaptateur:
Cela fonctionne pour Python2.7 et Python3.x:
io.StringIO(u'foo')