因爲需要將數據壓縮成 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