如题,代码如下:

class MemoryZipFile(object):def __init__(self):#创建内存文件self._memory_zip= StringIO.StringIO()def append_content(self, filename_in_zip, file_content):"""description: 写文本内容到zip"""zf= zipfile.ZipFile(self._memory_zip,"a", zipfile.ZIP_DEFLATED,False)zf.writestr(filename_in_zip, file_content)for zfilein zf.filelist: zfile.create_system= 0return selfdef append_file(self, filename_in_zip, local_file_full_path):"""

description:写文件内容到zip

  注意这里的第二个参数是本地磁盘文件的全路径(windows:c/demo/1.jpg | linux: /usr/local/test/1.jpg)"""zf = zipfile.ZipFile(self._memory_zip, "a", zipfile.ZIP_DEFLATED, False)zf.write(local_file_full_path, filename_in_zip)for zfile in zf.filelist: zfile.create_system = 0      return self

def read(self):

  """description: 读取zip文件内容"""self._memory_zip.seek(0)return self._memory_zip.read()

def write_file(self, filename):

  """description:写zip文件到磁盘"""f = file(filename, "wb")f.write(self.read())f.close()

使用方法如下:

        mem_zip_file= MemoryZipFile()mem_zip_file.append_content('mimetype',"application/epub+zip")mem_zip_file.append_content('META-INF/container.xml','''<?xml version="1.0" encoding="UTF-8" ?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container"> </container>''');#追加磁盘上的文件内容到内存,注意这里的第二个参数是本地磁盘文件的全路径(windows:c/demo/1.jpg | linux: /usr/local/test/1.jpg)mem_zip_file.append_file("1.jpg","c:\1.jpg")#将内存中的zip文件写入磁盘mem_zip_file.write_file("c:test.zip")#获取内存zip文件内容data= mem_zip_file.read()#上传到fdfsmy_fdfs_client.upload_by_buffer(data,'zip')

PYTHON如何在内存中生成ZIP文件相关推荐

  1. python在内存中生成Zip文件!

    python在内存中生成Zip文件! - 天真的好蓝啊 - 博客园 python在内存中生成Zip文件! import zipfile import StringIO class MemoryZipF ...

  2. python生成epub文件_python在内存中生成Zip文件!

    import zipfile import StringIO class MemoryZipFile(object): def __init__(self): #创建内存文件 self._memory ...

  3. 通过多线程压缩提高生成 Zip 文件的效率

    在很多情况下,需要用 Zip 格式保存数据文档.当数据量较大时(超过100M),就会明显感觉到保存文件耗时很长(超过10秒),这样的用户体验难以接受,想要优化. 现有开源方案 zlib-ng/zlib ...

  4. Python 自动化教程(5) : 自动生成Word文件

    系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...

  5. hadoop直接解压hdfs中的zip文件

    公司需求上传zip文件到hdfs中,然后解压缩.百度很久没找到直接在hadoop中解压zip的方法.大多数都是使用java连接hdfs读取.解压缩.写回hdfs中,但是这样逃不开网络带宽的限制.所以就 ...

  6. Python 自动化教程(4) : 自动生成PPT文件 Part 2 (干货)

    系列教程: Python 自动化教程(1) 概述,第一篇 Excel自动化 Python 自动化教程(2) : Excel自动化:使用pandas库 Python 自动化教程(3) : 自动生成PPT ...

  7. Java中的Zip文件操作

    0. 简介 简单的生成和读取 zip 文件 package com.willhonor.test;import static java.nio.charset.StandardCharsets.UTF ...

  8. 【收藏】Python利用Excel+模板批量生成word文件

    Python利用Excel+模板批量生成word文件 最近帮朋友批量生成小区业主物业费未缴的律师函.朋友那有物业那边的表格数据,包括楼栋-房间号.业主姓名.欠费日期.欠款金额等信息.目的是需要将这些表 ...

  9. vector与结构体联合使用 在磁盘中生成.txt 文件

    一下纯属个人总结.欢迎拍砖!谢谢 我意思到以练促进学习C++编程基础是很有帮助的 这篇文章是我为了熟悉掌握文件流和STL中的vector以及结构体三个只知识点所写的代码: #include <s ...

最新文章

  1. “编程能力差的程序员,90%输在这事上!”谷歌AI专家:都是瞎努力!
  2. 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | Class.cpp#findClassNoInit 函数 | DexFile.cpp#dexFindClass 函数分析 )
  3. 忘记了root密码怎么办?
  4. python2和python3如何共存,如何安装多版本python python2和python3共存以及pip共存
  5. 有凤来仪的意思是什么?成语有凤来仪比喻什么?
  6. 计算机报名填错学制,2017年在职研究生填报信息发现错误怎么修改?
  7. Android TabActivity与Activity之间的动画跳转(主要Tabhost中跳转出来的动画效果解决)...
  8. python文件数据类型_python 数据类型 ---文件一
  9. 14款国内外主流三维GIS软件
  10. linux应用程序故障排查,为Linux应用程序排查故障的另类方法
  11. vue两列数据 合并成一列
  12. 吉安梵媛:人间最美是——原谅!
  13. linux下安装drcom方法
  14. 细数互联网企业组织架构大调整
  15. GitHub + PicUloader + jsDelivr : 通过 web 上传的免费图床和图像访问 CDN 加速
  16. Free Icon Tool(icon图标提取器)绿色便携版V2.1.5 | 应用图标提取器下载 | 快速提取exe中的ico图标
  17. 高仿凤凰新闻的加载效果
  18. /var/ha/soc/hagsdsocket./cdrom/rootpre.sh[338]: /usr/lpp/ssp/bin/spget_syspar
  19. 多模态机器学习简述(Guide to Multimodal Machine Learning)
  20. CAD梦想画图中的“绘图工具——点”

热门文章

  1. mysql数据库指定ip远程访问
  2. jQuery EasyUI dialog 居中最简单的办法
  3. SEO优化工具之——Google Adwords 关键词工具
  4. 【转载】用Delphi实现程序间的数据传递
  5. 替换用FTP传到Unix上的文件中的^M字符
  6. Linux是不是共享软件,linux – 是否有可能在应用程序之间共享Cuda上下文?
  7. datetime模块
  8. bzoj1110: [POI2007]砝码Odw
  9. squirrelsql安装
  10. ant安装(for linux)