繁体   English   中英

在 Flask 中生成 zip 文件

[英]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)

代码说明

  1. 从模块 shutil 导入 make_archive class。

  2. 使用拆分 function 将目录和文件名从路径拆分到文本文件的位置。

  3. 然后我们调用模块"shutil.make_archive("guru99 archive, "zip", root_dir)" 创建归档文件,文件格式为zip

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM