Python Linux系统管理之使用Python管理压缩包

一、使用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)
<ipython-input-9-0c341d269b4b> in <module>
      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’)

 

posted @ 2020-08-11 14:36  星火撩原  阅读(209)  评论(0编辑  收藏  举报