import zipfile

import StringIO

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 zfile in zf.filelist: zfile.create_system = 0

return self

def 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" ?>

''');

#追加磁盘上的文件内容到内存,注意这里的第二个参数是本地磁盘文件的全路径(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()

#上传到fdfs

my_fdfs_client.upload_by_buffer(data, 'zip')

to everyone: 2013,Happy New Year!!!!!

python生成epub文件_python在内存中生成Zip文件!相关推荐

  1. python解压zip文件_python怎样压缩和解压缩ZIP文件(转)

    有时我们需要在 Python 中使用 zip 文件,而在1.6版中,Python 就已经提供了 zipfile 模块可以进行这样的操作.不过 Python 中的 zipfile 模块不能处理多卷的情况 ...

  2. python包的init文件_Python模块包中__init__.py文件功能分析

    本文实例讲述了Python模块包中__init__.py文件功能.分享给大家供大家参考,具体如下: 用django做开发已经一年多的时间,但基本没注意python模块中__init__.py文件存在的 ...

  3. python读取zip包内文件_Python模块学习:zipfile zip文件操作

    最近在写一个网络客户端下载程序,用于下载服务器上的数据.有些数据(如文本,office文档)如果直接传输的话,将会增加通信的数据量,使下载时间变长.服务器在传输这些数据之前先对其进行压缩,客户端接收到 ...

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

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

  5. PYTHON如何在内存中生成ZIP文件

    如题,代码如下: class MemoryZipFile(object):def __init__(self):#创建内存文件self._memory_zip= StringIO.StringIO() ...

  6. ARM程序的镜像文件以及在内存中的分区

    最近在对程序的编译和运行机制比较感兴趣,总结了一些关于ARM生成的镜像文件和在内存中的内容,同时还有一些疑问,欢迎大家指教. 首先,程序主要有以下三部分组成: RO:指程序的指令和常量(我们的代码编译 ...

  7. python如何读pst文件_Python 学习 第11篇:文件读写

    Python的文件是一个重要的对象,使用open()函数来打开文件,创建文件对象,进行文件的读写操作.当数据用于交换信息时,通常需要把数据保存为有格式的文本数据,可以保存为有特定的行分隔符和列分隔符的 ...

  8. c++语言循环读写文件夹,在C++中逐行读取文件

    file.txt的内容包括: 5 3 6 4 7 1 10 5 11 6 12 3 12 4 其中,5 3是一个坐标对.如何在C++中逐行处理此数据? 我可以得到第一行,但如何得到文件的下一行? if ...

  9. maven没有resource文件夹_maven项目中没有resource文件夹的问题

    之前使用eclipse创建maven项目,文件夹都是建好的,这几次创建,都没有resource文件夹,需要手动创建resource. 现象描述 在eclipse中,创建maven项目有两种方式: 一种 ...

最新文章

  1. 程序员入职锦囊妙计 --读书笔记
  2. MFC控件的颜色设置
  3. 使用jsp实现word、excel格式报表打印-JSP教程,Jsp/Servlet
  4. 用redis实现消息队列
  5. IT职场的一些处事之道
  6. java 混码_kotlin java 混合代码 maven 打包实现
  7. aws lambda_跑来跑去:假人与AWS Lambda的第一次接触
  8. python做些什么项目内容_现在比较流行的python做什么项目最适合?
  9. 用Python看蜜雪冰城店铺在哪个省份最多~
  10. 单链表的实现操作(C语言)
  11. 如何使用泛型在新的可空上下文中启动健壮的C#项目?
  12. 2.Node.js access_token的获取、存储及更新
  13. FlipIt博弈模型和后续研究的改进
  14. [转]用Excel制作甘特图并管理项目
  15. Java之非对称加密
  16. 一、java入门(高琪java300集+java从入门到精通笔记)
  17. 计算机网络技术动态路由配置,计算机网络实验六动态路由的配置
  18. clickhouse源码:函数分析和自定义函数UDF
  19. 自己动手写CPU(11)——加载存储指令说明
  20. bootstrap-table固定表头固定列

热门文章

  1. ekf pose使用方法 ros_ubuntu16.04下ROS操作系统学习笔记(二)
  2. 多因子降维法(MDR,Multifactor Dimensionality Reduction )
  3. 文本处理三驾马车 • grep • sed • awk
  4. 论文笔记 Medical Entity Linking using Triplet Network
  5. mysql数据库目标库_修改mysql数据库的库名
  6. python pandas DataFrame 排序
  7. Pytorch笔记(python--类与对象(class and module))
  8. LeetCode 1119. Remove Vowels from a String--C++,Java,Python解法
  9. 企业dns服务器搭建
  10. mysql的聚合函数综合案例_MySQL常用聚合函数详解