What is the best way to write the contents of a StringIO to a file? What is the best way to write the contents of a StringIO to a file? python python

What is the best way to write the contents of a StringIO to a file?


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).


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())