用 Python 管理壓縮包,壓縮檔案一找就出現

2021-09-07 08:39:11 字數 2060 閱讀 2731

python管理zip主要使用zipfile模組,這個模組裡有乙個名為 zipfile 的物件,我們通過將 zip 壓縮包的名稱傳遞給這個物件的函式,這樣就開啟了乙個 zip 壓縮包並獲得乙個 zipfile 的物件,然後使用這個物件的方法去讀取 zip 壓縮包裡的內容。具體如下所示:

namelist() 是 zipfile 中的常用方法,除此以外比較常用的方法還有 extract,extractall:

如果想要建立乙個zip格式的壓縮檔案,必須要以「寫」的模式開啟 zip 檔案,可以是w或a

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 包,也可以建立使用壓縮演算法壓縮過的壓縮包。

python 中使用 tarfile 標準庫提供了 tar 命令提供的功能,我們也可以使用它建立乙個壓縮或者乙個非壓縮的 tar 包。

import tarfile

with tarfile.open('etc.tar', mode='w') as f:

上面的**中,由於我們是建立乙個 tar 包,所以以「寫」模式開啟 tar 包並得到乙個 tarfile 物件,然後使用 tarfile 物件的 add 方法將 test.py 檔案新增到 tar 包中。

import tarfile

with tarfile.open('etc.tar') as t:

for member in t.getmembers():

print(member.name)

上面的**中,匯入 tarfile 庫,使用預設的讀模式開啟 tar 包,tarfile.open() 函式返回乙個 tarfile 物件,這個物件表示當前開啟的 tar 包,我們可以通過這個物件的方法操作和讀取 tar 包中的內容。

tarfile 中有不少函式,其中最常用的有 getnames,extract,extractall 函式:

上面我們用 targfile 建立和讀取未壓縮的 tar 包,但是一般情況下,我們建立 tar 包的時候都會使用壓縮演算法進行壓縮,以加快傳輸速度和減少占用的磁碟空間。

使用 tarfile 建立和讀取壓縮包非常簡單,只要在開啟檔案時指定壓縮演算法即可。對於 tarfile 的 open 函式,以「開啟模式:壓縮演算法」的形式開啟即可。具體如下所示:

import tarfile

with tarfile.open('etc.tar.gz', mode='w:gz') as f:

import tarfile

with tarfile.open('test.tar.gz', 'r:gz') as f:

for member in f.getmembers():

print(member.name)

使用Python管理壓縮包

一 使用tarfile庫讀取與建立tar包 1.建立tar包 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 1 import tarf...

使用Python管理壓縮包

一 使用tarfile庫讀取與建立tar包 1.建立tar包 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 1 import tarf...

無需壓縮軟體,用python幫你操作壓縮包

寫在之前 壓縮包是網際網路上軟體發布的標準格式,同時對於系統管理很有用處。當我們需要將多份檔案傳送給別人的時候,最好通過壓縮包的形式傳送,還有在備份某些檔案的時候,為了減少磁碟空間的占用,也需要對備份的資料進行壓縮。python 中有一系列對壓縮包進行處理的工具,包括程式設計客棧建立壓縮包,解壓壓縮...