Python处理压缩/解压缩--zipfile、tarfile

常见压缩格式:

  1. zip:普及率高,压缩快速,文件稍大,但不需要任何的外部程序便可以解压。(支持跨磁盘)
  2. 7z:目前世界上,压缩比最高的,支持分卷压缩
  3. tar:原生文件,不具备压缩功能,仅以“存储”方式进行TAR打包,主要用于linux系统。(可以良好的解决Linux平台和windows平台之间的传输问题)

zipfile- 解析zip格式文件

zipfile模块,提供用于创建,读取,写入,追加和列出ZIP文件的工具。

ZipFile对象

class zipfile.ZipFile(file [,mode [,compression [,allowZip64 ] ] ] )
  • file:可以是文件(字符串)的路径,也可以是类文件对象。
  • mode:‘r’-读取现有的文件,‘w’-写入一个新的文件,‘a’-追加。
  • compression:编写存档时使用的ZIP压缩方法,应该是ZIP_STORED或ZIP_DEFLATED; 默认是ZIP_STORED。
  • allowZip64: True或False。大于2 GB时,是否引用ZIP64扩展。默认为禁用。
with ZipFile('spam.zip', 'w') as myzip:
    myzip.write('eggs.txt')

ZipFile.close()
ZipFile.getinfo(name)
ZipFile.infolist(): 保持磁盘上实际ZIP文件中的条目顺序。
ZipFile.namelist(): 按名称返回归档成员列表。
ZipFile.open(name [,mode [,pwd ] ] ): mode:‘r’(默认值), ‘U’或’rU’。 pwd:用于加密文件的密码。

ZipFile.extract(member [,path [,pwd ] ] ): 将成员从存档中提取到当前工作目录。
ZipFile.extractall([ path [,members [,pwd ] ] ] ): 将存档中的所有成员解压缩到当前工作目录。 path 指定要提取到的其他目录。

ZipFile.printdir(): 打印归档的目录sys.stdout。
ZipFile.setpassword(pwd ): 将pwd设置为默认密码以提取加密文件。
ZipFile.read(name [,pwd ] ): 返回归档中文件名的字节。
ZipFile.testzip(): 读取存档中的所有文件并检查其CRC和文件头。返回第一个坏文件的名称,否则返回None。
ZipFile.write(filename [,arcname [,compress_type ] ] ): 将名为filename的文件写入存档。
ZipFile.writestr(zinfo_or_arcname,bytes [,compress_type ] ): 将字符串字节写入存档;。

ZipInfo对象

用于表示存档成员信息的类。该类的实例由对象getinfo()和infolist() 方法返回ZipFile
实例具有以下属性:
ZipInfo.filename: 存档中文件的名称。
ZipInfo.date_time: 上次修改存档成员的时间和日期。(六元组)
ZipInfo.compress_type: 存档成员的压缩类型。
ZipInfo.comment: 对单个档案成员的评论。

命令行界面

zipfile模块提供了一个简单的命令行界面,可与ZIP存档交互。

$ python -m zipfile -c monty.zip spam.txt eggs.txt

$ python -m zipfile -c monty.zip life-of-brian_1979/

$ python -m zipfile -e monty.zip target-dir/

$ python -m zipfile -l monty.zip
-l                           列出zipfile中的文件。
-c   ...   从源文件创建zipfile。
-e               将zipfile解压缩到目标目录中。
-t                           测试zipfile是否有效。

tarfile- 读取和写入tar归档文件

你可能感兴趣的:(Python基础)