[英]Generating zip file in Flask
我正在使用插入到我的 Flask 应用程序的脚本生成多个.csv 文件。 下面是我的路由文件部分,其中需要输入并传递给脚本。
@app.route('/summary_report', methods= ['GET', 'POST'])
def summary_report():
"""
Showing page for generating daily report
:return:
"""
form = frm.SummaryReportForm()
if form.validate_on_submit():
from_date = form.from_date.data
is_active = form.is_active.data
reports = current_summary_report.fetch_report(from_date=from_date, status=is_active) # Go the script
return send_file(reports, as_attachment=True, attachment_filename="reports.zip") # Download attachment
return render_template('pages/reports/current/summary.html', form=form)
我的脚本文件正在循环运行并创建多个 csv 文件。
def fetch_report(from_date=from_date, status=is_active):
for record in records:
....
f = open(file_name + '-' + str(time) + '.csv','w+')
f.write(csv)
f.close()
我应该在此处进行哪些更改以将所有 csv 文件放入 zip 文件并使其可下载。
Python 允许您快速创建 zip/tar 档案。
以下命令将 zip 整个目录
shutil.make_archive(output_filename, 'zip', dir_name)
以下命令使您可以控制要归档的文件
ZipFile.write(filename)
代码说明
从模块 shutil 导入 make_archive class。
使用拆分 function 将目录和文件名从路径拆分到文本文件的位置。
然后我们调用模块"shutil.make_archive("guru99 archive, "zip", root_dir)" 创建归档文件,文件格式为zip
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.