zoukankan      html  css  js  c++  java
  • python

    参考:http://www.cnblogs.com/sislcb/archive/2008/11/28/1342822.html

    zipfile - python处理zip文件的压缩与解压

    ZipFile()是用来创建和读取zip文件

    ZipInfo()是存储的zip文件的每个文件的信息的

    E:读取一个zip压缩包里所有文件的名字,z.namelist() 会返回压缩包内所有文件名的列表

    import zipfile
    
    z = zipfile.ZipFile(filename, 'r') # 这里的第二个参数用r表示是读取zip文件,w是创建一个zip文件
    
    for f in z.namelist():
        print f

    E:z.infolist()

    import zipfile
    
    z = zipfile.ZipFile(filename, 'r')
    
    for i in z.infolist():
        print i.file_size, i.header_offset
    

      z.infolist()它返回的就是压缩包内所有文件的信息,就是一个ZipInfo的列表。

      一个ZopInfo对象中包含了压缩包内一个文件的信息,其中比较常用的是 filename, file_size, header_offset, 分别为文件名,文件大小,文件数据在压缩包中的偏移。之前的z.namelist()就是读取的ZopInfo中的filename,组成一个 list返回的。

    E:使用ZipFile的read() 解压缩

    import zipfile
    
    z = zipfile.ZipFile(filename, 'r')
    
    print z.read(z.namelist()[0])  #z.namelist()中的第一个文件
    

    E:创建zip压缩包

    import zipfile, os
    
    z = zipfile.ZipFile(filename, 'w') # 注意这里的第二个参数是w,这里的filename是压缩包的名字
    
    #假设要把一个叫testdir中的文件全部添加到压缩包里(这里只添加一级子目录中的文件):
    if os.path.isdir(testdir):
        for d in os.listdir(testdir):
            z.write(testdir+os.sep+d)
    # close() 是必须调用的!
    z.close()
    

      

  • 相关阅读:
    由 Rest参数 和 Spread扩展运算符想到的...
    输出数组重复项
    echarts 踩坑记
    es6 Promise.all() 和 Promise.race() 区别
    关于Promise.all
    移动端弹出层平滑滚动和fix定位的冲突
    ES6 数组和字符串
    IE9以下 placeholder兼容
    jQuery设置聚焦并使光标位置在文字最后
    处理GitHub不允许上传大于100M文件问题
  • 原文地址:https://www.cnblogs.com/frankcoder/p/5087337.html
Copyright © 2011-2022 走看看