Quelle est la meilleure façon d'écrire le contenu d'un StringIO à un fichier?
Quelle est la meilleure façon d'écrire le contenu d'un StringIO
tampon dans un fichier ?
Je fais quelque chose comme:
buf = StringIO()
fd = open ('file.xml', 'w')
# populate buf
fd.write (buf.getvalue ())
Mais alors buf.getvalue ()
pourrait faire une copie du contenu?
StringIO
les objets sont toujours stockées dans la mémoire principale. Si vous ne voulez pas que, ne pas utiliser deStringIO
et d'écrire directement dans le fichier.- Oui, mais à l'aide de
buf.getvalue()
dans cette voie pourrait (?) créer une copie du contenu.
Vous devez vous connecter pour publier un commentaire.
Utilisation shutil.copyfileobj:
ou
shutil.copyfileobj (buf, fd, -1)
pour copier à partir d'un fichier objet sans l'aide de morceaux de taille limitée (utilisé pour éviter incontrôlée de la consommation de mémoire).fd.close()
with
mot-clé.Python 3:
Python 2.x:
buf.getvalue()
.shutil.copyfileobj
est la meilleure solution.