python使用内存zipfile对象在内存中打包文件示例


Posted in Python onApril 30, 2014
import zipfile
import StringIO
class InMemoryZip(object):
    def __init__(self):
        # Create the in-memory file-like object
        self.in_memory_zip = StringIO.StringIO()
    def append(self, filename_in_zip, file_contents):
        '''Appends a file with name filename_in_zip and contents of 
        file_contents to the in-memory zip.'''
        # Get a handle to the in-memory zip in append mode
        zf = zipfile.ZipFile(self.in_memory_zip, "a", zipfile.ZIP_DEFLATED, False)
        # Write the file to the in-memory zip
        zf.writestr(filename_in_zip, file_contents)
        # Mark the files as having been created on Windows so that
        # Unix permissions are not inferred as 0000
        for zfile in zf.filelist:
            zfile.create_system = 0        
        return self
    def read(self):
        '''Returns a string with the contents of the in-memory zip.'''
        self.in_memory_zip.seek(0)
        return self.in_memory_zip.read()
    def writetofile(self, filename):
        '''Writes the in-memory zip to a file.'''
        f = file(filename, "w")
        f.write(self.read())
        f.close()
if __name__ == "__main__":
    # Run a test
    imz = InMemoryZip()
    imz.append("test.txt", "Another test").append("test2.txt", "Still another")
    imz.writetofile("test.zip")
Python 相关文章推荐
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 Python
python避免死锁方法实例分析
Jun 04 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
Jul 09 Python
Python SQL查询并生成json文件操作示例
Aug 17 Python
对python numpy.array插入一行或一列的方法详解
Jan 29 Python
python Tkinter版学生管理系统
Feb 20 Python
Django学习笔记之为Model添加Action
Apr 30 Python
django实现后台显示媒体文件
Apr 07 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
浅谈pycharm导入pandas包遇到的问题及解决
Jun 01 Python
利用PyTorch实现VGG16教程
Jun 24 Python
python数据结构之二叉树的统计与转换实例
Apr 29 #Python
python数据结构之二叉树的遍历实例
Apr 29 #Python
python数据结构之二叉树的建立实例
Apr 29 #Python
python数据结构树和二叉树简介
Apr 29 #Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 #Python
Python中实现远程调用(RPC、RMI)简单例子
Apr 28 #Python
Python的ORM框架SQLObject入门实例
Apr 28 #Python
You might like
用PHP4访问Oracle815
2006/10/09 PHP
PHP生成静态页面详解
2006/11/19 PHP
php比较相似字符串的方法
2015/06/05 PHP
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
js实现图片无缝滚动特效
2020/03/19 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
微信小程序实现文字跑马灯效果
2020/05/26 Javascript
微信小程序日期选择器实例代码
2018/07/18 Javascript
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
JavaScript实现点击出现子菜单效果
2021/02/08 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
2014/11/05 Python
python中import学习备忘笔记
2017/01/24 Python
Python单体模式的几种常见实现方法详解
2017/07/28 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python中print函数简单使用总结
2019/08/05 Python
基于python使用tibco ems代码实例
2019/12/20 Python
Django封装交互接口代码
2020/07/12 Python
Python中Yield的基本用法
2020/10/18 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
华为c/c++笔试题
2016/01/25 面试题
介绍一下linux的文件权限
2014/07/20 面试题
简单的JAVA编程面试题
2013/03/19 面试题
商务英语应届生自我鉴定
2013/12/08 职场文书
手机业务员岗位职责
2013/12/13 职场文书
我的网上商城创业计划书
2013/12/26 职场文书
学生会干部自荐信
2014/02/04 职场文书
保险专业求职信
2014/07/07 职场文书
python随机打印成绩排名表
2021/06/23 Python
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript