python处理压缩文件

Zip

模块安装

pip install zipfile

使用

import zipfile

# 打开zip文件
zipfileObj = zipfile.ZipFile("./tmp.zip")

# with上下文
with zipfile.ZipFile("./tmp.zip") as zipfileObj:
	pass

常用方法

ZipFile类

  1. ZipFile.close(): 关闭文件,结束时必须要有
  2. ZipFile.getinfo(name): 获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。
  3. ZipFile.infolist(): 获取zip文档内所有文件的信息,返回一个zipfile.ZipInfo的列表。
  4. ZipFile.namelist(): 获取zip文档内所有文件的名称列表。
  5. ZipFile.extract(member[, path[, pwd]]):将zip文档内的指定文件解压到当前目录。
  6. ZipFile.extractall([path[, members[, pwd]]]): 解压zip文档中的所有文件到当前目录。
  7. ZipFile.printdir(): 将zip文档内的信息打印到控制台上。
  8. ZipFile.setpassword(pwd): 设置zip文档的密码,这个方法我用的时候不好使,暂时没找到问题所在,建议要加密码使用 Python调用linux系统命令加密,或者调用windows里安装的压缩软件加密。
  9. ZipFile.read(name[, pwd]): 获取zip文档内指定文件的二进制数据。
  10. ZipFile.write(filename[, arcname[, compress_type]]):将指定文件添加到zip文档中。
  11. ZipFile.writestr(zinfo_or_arcname, bytes): writestr()支持将二进制数据直接写入到压缩文档。

ZipInfo 类

  1. ZipInfo.filename: 获取文件名称。
  2. ZipInfo.date_time: 获取文件最后修改时间。返回一个包含6个元素的元组:(年, 月, 日, 时, 分, 秒)
  3. ZipInfo.compress_type: 压缩类型。
  4. ZipInfo.comment: 文档说明。
  5. ZipInfo.extr: 扩展项数据。
  6. ZipInfo.create_system: 获取创建该zip文档的系统。
  7. ZipInfo.create_version: 获取 创建zip文档的PKZIP版本。
  8. ZipInfo.extract_version: 获取 解压zip文档所需的PKZIP版本。
  9. ZipInfo.reserved: 预留字段,当前实现总是返回0。
  10. ZipInfo.flag_bits: zip标志位。
  11. ZipInfo.volume: 文件头的卷标。
  12. ZipInfo.internal_attr: 内部属性。
  13. ZipInfo.external_attr: 外部属性。
  14. ZipInfo.header_offset: 文件头偏移位。
  15. ZipInfo.CRC: 未压缩文件的CRC-32。
  16. ZipInfo.compress_size: 获取压缩后的大小。
  17. ZipInfo.file_size: 获取未压缩的文件大小。

Gzip

gzip读取文件:

import gzip
with gzip.open('file.txt.gz', 'rb') as f:
    file_content = f.read()

gzip创建文件:

import gzip
content = "Lots of content here"
with gzip.open('file.txt.gz', 'wb') as f:
    f.write(content)

gzip向已存在文件压入数据:

import gzip
import shutil
with open('file.txt', 'rb') as f_in, gzip.open('file.txt.gz', 'wb') as f_out:
    shutil.copyfileobj(f_in, f_out)

tar.gz

使用

import tarfile

# with上下文
with tarfile.open() as tar:
	pass

常用方法

  1. is_tarfile()可以用来判断文件是否是tarfile支持的文件格式
  2. list()列出文件列表并在stdout显示
  3. getmembers()可以用来获取成员列表,返回TarInfo实例组成的一个列表,每个TarInfo实例可以查看其name,size,mtime等属性。
  4. getnames()可以用来从压缩包中读取文件名,返回文件名组成的文件清单。
  5. getmember()生成一个TarInfo实例子(获取一个成员的信息)
  6. extract()用来提取单个文件,输入文件名称和解压后的路径。
  7. extractall()用来提取所有文件,传入解压后的路径,不需要传入文件名称。
  8. extractfile()用来解压单个文件,输入文件名称,不需要输入解压后的路径,因为生成的是个文件实例,并不是直接解压文件。
此时要以写的方式打开
tarfile.open(name='logo.tar',mode='w')

add()方法添加要压缩的文件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Generalzy

文章对您有帮助,倍感荣幸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值