Python压缩解压zip

  • 压缩

    import zipfile
    def convert_zip(zip_path, save_path):'''# zip_path 要压缩文件的路径# save_path 文件压缩后保存的路径'''local_path = os.path.join(zip_path, "x.xls")zip = zipfile.ZipFile(save_path, "w")  #  zipfile.ZIP_DEFLATEDzip.write(local_path, 'x.xls')zip.close()convert_zip(zip_path, save_path)
    
  • 解压缩

    def unzip(file_path, save_path):""" zip文件解压缩 :param file_path: 要解压的文件:param save_path: 解压后的文件保存目录"""zfile = zipfile.ZipFile(file_path)for filename in zfile.namelist():data = zfile.read(filename)f = open(os.path.join(save_path, filename), 'w+b')f.write(data)f.close()
    

Django下载zip文件

  • Django使用临时文件夹tempfile下载其他文件,并压缩为zip文件返回给前端

  • 使用BytesIO()tempfile下载

    import io
    def contract_download(download_urls):'''downloads_urls 要批量下载并且压缩的文件'''# 创建BytesIOs = io.BytesIO()# 创建一个临时文件夹用来保存下载的文件temp = tempfile.TemporaryDirectory()# 使用BytesIO生成压缩文件zip = zipfile.ZipFile(s, 'w')for i in download_urls:f_name = "{}.pdf".format(i['name'])local_path = os.path.join(temp.name, f_name)# 下载文件ur.urlretrieve(i['download_url'], local_path)# 把下载文件的写入压缩文件zip.write(local_path, f_name)# 关闭文件zip.close()# 指针回到初始位置,没有这一句前端得到的zip文件会损坏s.seek(0)# 用FileWrapper类来迭代器化一下文件对象,实例化出一个经过更适合大文件下载场景的文件对象,实现原理相当与把内容一点点从文件中读取,放到内存,下载下来,直到完成整个下载过程。这样内存就不会担心你一下子占用它那么多空间了。wrapper = FileWrapper(s)response = HttpResponse(wrapper, content_type='application/zip')response['Content-Disposition'] = 'attachment; filename={}.zip'.format(datetime.datetime.now().strftime("%Y-%m-%d"))return responsedownload_urls = [{"name":"pdf1","download_url": "http://xxx.pdf"}, {"name":"pdf2", "download_url": "http://xxx2.pdf"}]
    contract_download(download_urls)
    

本文链接:时光不写博客-Django下载zip文件

Python压缩解压zip,Django下载zip文件相关推荐

  1. python 压缩 解压

    unrar在Linux机器中对中文的支持有漏洞 class DecompressionModel:def __init__(self):pass@staticmethoddef decompressi ...

  2. Python压缩解压--lzma

    原文链接:http://www.juzicode.com/python-tutorial-zip-unzip-lzma 本文介绍python的lzma模块压缩和解压缩文档,lzma和gzip一样也只能 ...

  3. Linux压缩解压tar.gz和zip包命令汇总

    1.tar包和gz包 tar包和gz包是两个不同的文件包,有三种不同后缀..tar .gz .tar.gz tar包:使用tar命令,打包文件或者文件夹,只打包,不压缩 gz包:使用gzip命令,只压 ...

  4. Linux 系统下文件压缩解压

    Linux 系统压缩&解压文件 压缩永远是针对于一个独立文件进行的,一个文件夹(某目录下文件)想要进行压缩首先要进行打包,打包成一个文件,所以在 Windows 下常说的压缩是打包与压缩的总称 ...

  5. Python加解压文件gzip库操作一文详解

    目录 一.gzip GZIP概念 文件格式 二.Python gzip库 gzip.open gzip.GzipFile压缩和解压 gzip.comress()压缩数据 解压数据 第一种 第二种 第三 ...

  6. c# rar解压大小_Linux压缩解压指令-bzip2、xz、compress、rar

    前面已经进介绍过Linux中用到的归档程序tar,文件压缩解压程序gzip.zip,今天继续介绍另外四种常见的压缩程序bzip2.compress.xz.rar. 文件压缩 bzip2 bzip2采用 ...

  7. xz压缩解压工具的安装

    高版本的tar是可以解压xz压缩包的,假如可以,可直接跳过小节.假如不能解压压缩的话,需要安装下面的步骤安装xz的压缩解压工具. 下载的时候总会出现*.xz的文件.这个文件压缩率比较大,根据官方的说明 ...

  8. NUC972---tar压缩解压命令

    详细资料请加QQ群索取 欢迎加入qq交流群:669495872 在日常开发过程中,不可避免的会用到压缩文件,如现在不少开源软件都是以压缩包方式提供,下载后必须解压才能使用:另一方面,也经常需要制作压缩 ...

  9. Linux压缩/解压命令

    Linux中有三个压缩文件的命令,其特点是这个三个命令压缩之后原文件将会美誉.它们经常与打包tar命令一起使用. 第一:常用的三个压缩/解压命令 1.gzip gzip +文件 gzip的解压 gzi ...

最新文章

  1. 机器学习中的训练集 验证集 测试集的关系
  2. flutter 自定义tab导航-顶部导航-底部导航
  3. vue main.js中引入js_web前端的同学不容错过,大厂Vue最佳实践总结,提高竞争力...
  4. 零基础学Python(第六章 if条件语句)
  5. 解决win2003远程桌面只能最多连接2个用户的问题
  6. 每周一书《Spark与Hadoop大数据分析》分享!
  7. 安装mamached数据库
  8. C语言第三次博客作业---单层循环结构
  9. 图像目标检测(Object Detection)原理与实现(三)
  10. 除手机平板PC外 华为终端明年全线搭载鸿蒙系统
  11. 接收请求参数及数据回显 2021-04-26
  12. 计算机p除c,计算机【电脑】中,Ctrl S/C/P/PrtSc/break/numberlock.分别表明什么?
  13. GEM TSU Interface Details and IEEE 1588 Support
  14. 关于正则表达式的补充(贪婪和懒惰)
  15. Windows使用批处理文件更改指定目录下的文件名(含序号)
  16. Javascript捕捉(capturing)与冒泡(bubbling)的区别
  17. C++超市商品管理系统设计最新版
  18. ubuntu16.04下安装网易云音乐(官网已经换为18.04)
  19. 桑基图绘制的简易操作
  20. 账号批量注册软件开发启示录

热门文章

  1. cp解释为脑瘫的那张图_脑瘫英语简称,cp是什么意思网络用语脑瘫。
  2. html5 交互作品,20个交互动效很棒的网页设计例子
  3. 如何确认某日是否为工作日(休息日)
  4. 总结(算不上总结的总结)
  5. opencv基本操作入门指南 (代码 + 讲解 + 边缘提取示例 + 调取摄像头demo)
  6. shiro权限框架详解02-权限理论介绍
  7. 【Arduino】 4×4薄膜键盘的使用
  8. 开环直流电机的机械特性_第二十三讲 20直流PWM变换器-电动机系统及开环调速系统机械特性.ppt...
  9. Micorsoft Build 2022 开发者最应关注的七大方向主要技术更新
  10. Notion——构建个人知识库