У меня есть эта функция для потоковой передачи текстовых файлов:Streaming сгенерированный CSV с Колба
def txt_response(filename, iterator):
if not filename.endswith('.txt'):
filename += '.txt'
filename = filename.format(date=str(datetime.date.today()).replace(' ', '_'))
response = Response((_.encode('utf-8')+'\r\n' for _ in iterator), mimetype='text/txt')
response.headers['Content-Disposition'] = 'attachment; filename={filename}'.format(filename=filename)
return response
Я работаю, как поток в CSV аналогичным образом. This page приводит пример, но я хочу использовать модуль CSV.
Я могу использовать StringIO
и создавать свежий файл и CSV-записи для каждой строки, но это кажется очень неэффективным. Есть ли способ лучше?