你好
我是你们的雨嘉叔

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

一、使用tarfile库读取与创建tar包

0、先创建一些测试文件

touch {1..2}.txt

1、创建压缩包

In [1]: import tarfile

In [2]: with tarfile.open(‘demo.tar’,mode=’w’) as out:

…: out.add(‘1.txt’)

…: out.add(‘2.txt’)

…:

# 最后一空行直接回车即可


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’)

赞(2)
未经允许不得转载:嘉叔的博客 » 13-Python Linux系统管理之使用Python管理压缩包
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址