我有一个用于流式传输文本文件的函数:
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。 这个页面提供了一个示例,但我希望使用CSV模块。
我可以使用StringIO
为每一行创建一个新的“文件”和CSV writer,但这似乎非常低效。有更好的方法吗?
writer.writeheader()
和yield line.read()
来添加标题。 - theannouncer