因为需要将数据压缩成 excel 然后从服务器下载到本地,所以需要用到压缩文件功能。
于是用了 Python 的库zipfile 官方:https://docs.python.org/3/library/zipfile.html
示例代码:
import StringIO
import os
import zipfile
def zip_dir(folder):
s = StringIO.StringIO() #创建 StringIO
zf = zipfile.ZipFile(s, 'w') #创建压缩文件对象,然后写入内存中
filelist = []
for root, dirs, files in os.walk(folder):
for name in files:
filelist.append(os.path.join(root, name))
for tar in filelist:
arcname = tar[len(folder):]
zf.write(tar, arcname)
zf.close()
return s
然后 如果要返回数据给前端,就 HttpResponse(s) #s = zip_dir