一、使用tarfile库读取与创建tar包
0、先创建一些测试文件
touch {1..2}.txt
1、创建压缩包
In [7]: import tarfile
In [9]: with tarfile.open('demo.tar',mode='w') as out:
...:out.add('1.txt')
...:out.add('2.txt')
...:---------------------------------------------------------------------------FileNotFoundError Traceback (most recent call last) in
1 with tarfile.open('demo.tar',mode='w') as out:----> 2 out.add('1.txt')3 out.add('2.txt')4# 最后一空行直接回车即可
2、读取tar包
In [3]: with tarfile.open(‘demo.tar’) as t:
…: for file in t.getmembers():
…: print(file.name)
…:
1.txt
2.txt
3、创建压缩包
with tarfile.open(‘demo.tar.gz’,mode=’w:gz’) as out:
…: out.add(‘1.txt’)
…: out.add(‘2.txt’)
…:
4、读取压缩包
In [6]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:
…: for f in out.getmembers():
…: print(f.name)
…:
1.txt
2.txt
5、提取单个或者所有文件
In [14]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:
…: out.extract(‘1.txt’)
…:
In [15]: ls
1.txt anaconda-ks.cfg demo.tar demo.tar.gz
In [16]: with tarfile.open(‘demo.tar.gz’,mode=’r:gz’) as out:
…: out.extractall()
…:
In [17]: ls
1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz
二、使用zipfile库创建和读取压缩包
1、创建zip文件
In [1]: import zipfile
In [2]: newZip = zipfile.ZipFile(‘demo.zip’,’w’)
In [3]: newZip.write(‘1.txt’)
In [4]: newZip.write(‘2.txt’)
In [5]: newZip.close()
In [6]: ls
1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz demo.zip
2、读取zip文件
In [7]: newZip = zipfile.ZipFile(‘demo.zip’)
In [8]: newZip.namelist()
Out[8]: [‘1.txt’, ‘2.txt’]
3、解压zip文件
In [12]: newZip.extract(‘1.txt’)
Out[12]: ‘/root/1.txt’
In [13]: newZip.extractall()
In [14]: ls
1.txt 2.txt anaconda-ks.cfg demo.tar demo.tar.gz demo.zip
三、使用shutil管理压缩包
In [1]: import shutil
In [2]: shutil.make_archive(‘demo’,’zip’)
Out[2]: ‘demo.zip’
In [3]: shutil.make_archive(‘demo’,’gztar’)
Out[3]: ‘demo.tar.gz’
In [4]: shutil.unpack_archive(‘demo.tar.gz’)
In [5]: shutil.unpack_archive(‘demo.zip’)