Подтвердить что ты не робот

Каков наилучший способ записи содержимого StringIO в файл?

Каков наилучший способ записи содержимого буфера StringIO в файл?

В настоящее время я делаю что-то вроде:

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

Но тогда buf.getvalue () сделает копию содержимого?

4b9b3361

Ответ 1

Используйте shutil.copyfileobj:

with open ('file.xml', 'w') as fd:
  buf.seek (0)
  shutil.copyfileobj (buf, fd)

или shutil.copyfileobj (buf, fd, -1) для копирования из файлового объекта без использования кусков ограниченного размера (используется для предотвращения неконтролируемого потребления памяти).