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') 3out.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(‘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’) |