What is the best way to write the contents of a StringIO to a file?
Python 3:
from io import StringIO
...
with open('file.xml', mode='w') as f:
print(buf.getvalue(), file=f)
Python 2.x:
from StringIO import StringIO
...
with open('file.xml', mode='w') as f:
f.write(buf.getvalue())
Use shutil.copyfileobj
:
with open('file.xml', 'w') as fd:
buf.seek(0)
shutil.copyfileobj(buf, fd)
or shutil.copyfileobj(buf, fd, -1)
to copy from a file object without using chunks of limited size (used to avoid uncontrolled memory consumption).