python 压缩文件夹,并给前端传输文件流

压缩文件夹,传输到前端

from zipfile import ZipFile,ZIP_DEFLATED
from flask import send_file
from io import BytesIO

def module_download():
    location = request.args.get('filename')   #接收前端参数,需要压缩的文件夹
    memory_file = BytesIO()
    with ZipFile(memory_file, "w", ZIP_DEFLATED) as zf:
        for dirpath, dirnames, filenames in os.walk('/home/' + location):
            for filename in filenames:
                zf.write(os.path.join(dirpath, filename))
    memory_file.seek(0)
    return send_file(memory_file, attachment_filename='zip.zip', as_attachment=True)

如果单纯的只想压缩文件,不传输到前端

# 把文件打包成zip
def zip_file(path, file):
    zip_name = path + '/{}.zip'.format(file)
    z = ZipFile(zip_name, 'w', ZIP_DEFLATED)
    for dirpath, dirnames, filenames in os.walk(path + '/' + file):
        for filename in filenames:
            z.write(os.path.join(dirpath, filename))
    z.close()
    return zip_name


版权声明:本文为cocos2dGirl原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。