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:app
若是想要建立一个zip格式的压缩文件,必需要以「写」的模式打开 zip 文件,能够是w或aide
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 命令通常是在 Linux 系统中建立压缩包,此外 tar 命令也能够建立一个不压缩的 tar 包,仅仅是为了能把多个文件进行打包便于传输。这也就是说,咱们在使用 tar 命令的时候,既能够建立普通的 tar 包,也能够建立使用压缩算法压缩过的压缩包。code
Python 中使用 tarfile 标准库提供了 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 包中。ip
import tarfile with tarfile.open('etc.tar') as t: for member in t.getmembers(): print(member.name)
上面的代码中,导入 tarfile 库,使用默认的读模式打开 tar 包,tarfile.open() 函数返回一个 TarFile 对象,这个对象表示当前打开的 tar 包,咱们能够经过这个对象的方法操做和读取 tar 包中的内容。get
tarfile 中有很多函数,其中最经常使用的有 getnames,extract,extractall 函数:it
上面咱们用 targfile 建立和读取未压缩的 tar 包,可是通常状况下,咱们建立 tar 包的时候都会使用压缩算法进行压缩,以加快传输速度和减小占用的磁盘空间。class
使用 tarfile 建立和读取压缩包很是简单,只要在打开文件时指定压缩算法便可。对于 tarfile 的 open 函数,以「打开模式:压缩算法」的形式打开便可。具体以下所示:
import tarfile with tarfile.open('etc.tar.gz', mode='w:gz') as f: f.add('apps.py')
import tarfile with tarfile.open('test.tar.gz', 'r:gz') as f: for member in f.getmembers(): print(member.name)