使用zipfile模块可以将多个文件打包成zip文件进行下载,但是常规的操作方式会在服务器磁盘上生成一个zip文件占用磁盘空间。
后引入BytesIO将文件写入到内存中然后下载:
1 def dl_plan(pid): 2 """ 3 下载测试计划关联的测试文件,分单个和多个文件情况(多个文件打包成zip下载)。 4 1. 计划只有一个文件则直接下载.xlsx文件 5 2. 计划有多个文件,则打包成zip通过BytesIO直接写入到内存中,不在本地生成.zip文件。 6 :param pid 7 :return: