用 Python 管理压缩包
admin
2023-07-14 10:04:27
0次

管理 zip 压缩包

读取zip压缩包内文件列表

Python管理zip主要使用zipfile模块,这个模块里有一个名为 ZipFile 的对象,我们通过将 zip 压缩包的名称传递给这个对象的函数,这样就打开了一个 zip 压缩包并获得一个 ZipFile 的对象,然后使用这个对象的方法去读取 zip 压缩包里的内容。具体如下所示:

import zipfile
first_zip = zipfile.ZipFile('test.zip')
file_list = first_zip.namelist()
print(file_list)

namelist() 是 ZipFile 中的常用方法,除此以外比较常用的方法还有 extract,extractall:

  • namelist:返回一个列表,列表中是 zip 中包含的所有文件和文件夹;
  • extract:从 zip 中提取单个文件
  • extarctall:从 zip 文件中提取所有文件

创建zip压缩包

如果想要创建一个zip格式的压缩文件,必须要以「写」的模式打开 zip 文件,可以是w或a

import zipfile
my_zip = zipfile.ZipFile('test2.zip', 'w')
my_zip.write('serilizer.py')
my_zip.close() 

上面的代码是创建了一个名为test2.zip的新zip压缩包,压缩包里包含serilizer.py这个问题件,注意,如果同名压缩包已经存在,使用w模式会删除压缩包内原有的问题件,如果对已有压缩包添加文件的话可以使用a模式

管理tar包

tar 命令一般是在 Linux 系统中创建压缩包,此外 tar 命令也可以创建一个不压缩的 tar 包,仅仅是为了能把多个文件进行打包便于传输。这也就是说,我们在使用 tar 命令的时候,既可以创建普通的 tar 包,也可以创建使用压缩算法压缩过的压缩包。

Python 中使用 tarfile 标准库提供了 tar 命令提供的功能,我们也可以使用它创建一个压缩或者一个非压缩的 tar 包。

创建tar包

import tarfile
with tarfile.open('etc.tar', mode='w') as f:
    f.add('apps.py')

上面的代码中,由于我们是创建一个 tar 包,所以以「写」模式打开 tar 包并得到一个 TarFile 对象,然后使用 TarFile 对象的 add 方法将 test.py 文件添加到 tar 包中。

读取tar包的文件列表

import tarfile
with tarfile.open('etc.tar') as t:
    for member in t.getmembers():
        print(member.name)

上面的代码中,导入 tarfile 库,使用默认的读模式打开 tar 包,tarfile.open() 函数返回一个 TarFile 对象,这个对象表示当前打开的 tar 包,我们可以通过这个对象的方法操作和读取 tar 包中的内容。

tarfile 中有不少函数,其中最常用的有 getnames,extract,extractall 函数:

  • getnames:获取 tar 包中每个文件的对象,是个列表;
  • extract:提取单个文件;
  • extractall:提取所有文件

tarfile 读取和创建压缩包

上面我们用 targfile 创建和读取未压缩的 tar 包,但是一般情况下,我们创建 tar 包的时候都会使用压缩算法进行压缩,以加快传输速度和减少占用的磁盘空间。

使用 tarfile 创建和读取压缩包非常简单,只要在打开文件时指定压缩算法即可。对于 tarfile 的 open 函数,以「打开模式:压缩算法」的形式打开即可。具体如下所示:

创建一个用gzip算法压缩的tar包

import tarfile
with tarfile.open('etc.tar.gz', mode='w:gz') as f:
    f.add('apps.py')

读取一个用gzip算法压缩的tar包

import tarfile
with tarfile.open('test.tar.gz', 'r:gz') as f:
    for member in f.getmembers():
        print(member.name)

参考链接
https://mp.weixin.qq.com/s/mic5BtABQYBxMCxvw6t3Bw

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...