Как лучше всего записать содержимое буфера StringIO в файл?
StringIO
В настоящее время я делаю что-то вроде:
buf = StringIO() fd = open ('file.xml', 'w') # populate buf fd.write (buf.getvalue ())
Но тогда buf.getvalue () сделает копию содержимого?
buf.getvalue ()
Используйте shutil.copyfileobj :
with open ('file.xml', 'w') as fd: buf.seek (0) shutil.copyfileobj (buf, fd)
или shutil.copyfileobj (buf, fd, -1) для копирования из файлового объекта без использования фрагментов ограниченного размера (используется, чтобы избежать неконтролируемого потребления памяти).
shutil.copyfileobj (buf, fd, -1)