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多线程抓取代理服务器IP地址的示例
Nov 09 Python
pyqt5的QComboBox 使用模板的具体方法
Sep 06 Python
对python 自定义协议的方法详解
Feb 13 Python
python查询文件夹下excel的sheet名代码实例
Apr 02 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
django框架基于模板 生成 excel(xls) 文件操作示例
Jun 19 Python
python解析yaml文件过程详解
Aug 30 Python
python单例模式原理与创建方法实例分析
Oct 26 Python
Python中logger日志模块详解
Aug 04 Python
python解压zip包中文乱码解决方法
Nov 27 Python
python中os.remove()用法及注意事项
Jan 31 Python
Python使用Turtle模块绘制国旗的方法示例
Feb 28 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
PHP5中MVC结构学习
2006/10/09 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
摘自百度的图片轮换效果代码
2007/11/19 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
SpringBoot在yml配置文件中配置druid的操作
2020/11/16 Javascript
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python处理XML格式数据的方法详解
2017/03/21 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
如何用Python做一个微信机器人自动拉群
2019/07/03 Python
python 串行执行和并行执行实例
2020/04/30 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
DeinDesign德国:设计自己的手机壳
2019/12/14 全球购物
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
写自荐信三大法宝
2014/01/24 职场文书
九年级科学教学反思
2014/01/29 职场文书
《姥姥的剪纸》教学反思
2014/02/25 职场文书
委托收款证明
2015/06/23 职场文书
大队委员竞选演讲稿
2015/11/20 职场文书
六五普法学习心得体会
2016/01/21 职场文书
导游词之湖州-太湖
2019/10/11 职场文书