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

Viewed 51333

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

I currently do something like:

buf = StringIO()
fd = open('file.xml', 'w')
# populate buf
fd.write(buf.getvalue ())

But then buf.getvalue() would make a copy of the contents?

2 Answers

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