色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

無(wú)需壓縮軟件,用python幫你操作壓縮包

瀏覽:30日期:2022-07-13 18:24:14

寫(xiě)在之前

壓縮包是互聯(lián)網(wǎng)上軟件發(fā)布的標(biāo)準(zhǔn)格式,同時(shí)對(duì)于系統(tǒng)管理很有用處。當(dāng)我們需要將多份文件發(fā)送給別人的時(shí)候,最好通過(guò)壓縮包的形式發(fā)送,還有在備份某些文件的時(shí)候,為了減少磁盤(pán)空間的占用,也需要對(duì)備份的數(shù)據(jù)進(jìn)行壓縮。

Python 中有一系列對(duì)壓縮包進(jìn)行處理的工具,包括創(chuàng)建壓縮包,解壓壓縮包以及獲取壓縮包中的文件列表等,今天的文章,我們就來(lái)學(xué)習(xí)一下與壓縮包相關(guān)的 Python 標(biāo)準(zhǔn)庫(kù)。

管理 zip 壓縮包

在大多數(shù)情況下,我們?cè)?Windows 下使用 zip 進(jìn)行壓縮,在 Linux 下使用 gzip 或者 bzip2 進(jìn)行壓縮。這一部分,我們來(lái)看一下如何管理 zip 格式的壓縮包。

1.讀取 zip

Python 管理 zip 主要使用 zipfile 模塊,這個(gè)模塊里有一個(gè)名為 ZipFile 的對(duì)象,我們通過(guò)將 zip 壓縮包的名稱(chēng)傳遞給這個(gè)對(duì)象的函數(shù),這樣就打開(kāi)了一個(gè) zip 壓縮包并獲得一個(gè) ZipFile 的對(duì)象,然后使用這個(gè)對(duì)象的方法去讀取 zip 壓縮包里的內(nèi)容。具體如下所示:

>>> import zipfile>>> first_zip = zipfile.ZipFile(’test.zip’)>>> first_zip.namelist()

namelist() 是 ZipFile 中的常用方法,初次以外還比較常用的方法有 extract,extractall:

namelist:返回一個(gè)列表,列表中是 zip 中包含的所有文件和文件夾; extract:從 zip 中提取單個(gè)文件 extarctall:從 zip 文件中提取所有文件

2.創(chuàng)建 zip

與文件的方式類(lèi)似,如果想要?jiǎng)?chuàng)建一個(gè) zip 格式的壓縮文件,必須要以「寫(xiě)」的模式打開(kāi) zip 文件,需要說(shuō)一點(diǎn)的是,ZipFile 的對(duì)象是通過(guò) write 方法來(lái)添加文件的。具體如下所示:

>>> import zipfile>>> my_zip = zipfile.ZipFile(’test.zip’, ’w’)>>> my_zip.write(’test.py’)>>> my_zip.close()

上面的代碼是創(chuàng)建了一個(gè)名為 test.zip 的新 zip 文件,它包含 test.py 壓縮后的內(nèi)容。

管理 tar 包

tar 命令一般是在 Linux 系統(tǒng)中創(chuàng)建壓縮包,并且可以指定壓縮包的壓縮算法。此外 tar 命令也可以創(chuàng)建一個(gè)不壓縮的 tar 包,僅僅是為了能把多個(gè)文件進(jìn)行打包便于傳輸。這也就是說(shuō),我們?cè)谑褂?tar 命令的時(shí)候,既可以創(chuàng)建普通的 tar 包,也可以創(chuàng)建使用壓縮算法壓縮過(guò)的壓縮包。

Python 中使用 tarfile 標(biāo)準(zhǔn)庫(kù)提供了 tar 命令提供的功能,我們也可以使用它創(chuàng)建一個(gè)壓縮或者一個(gè)非壓縮的 tar 包。我之前很多次說(shuō)過(guò) Python 的簡(jiǎn)潔優(yōu)雅體現(xiàn)在方方面面,在這里體現(xiàn)在 tarfile 模塊比 Linux 下的 tar 命令用起來(lái)更加舒服。

1.讀取 tar 包

同樣讀取 tar 包和 Python 的文件管理操作類(lèi)似,讀寫(xiě)一個(gè)壓縮包,需要執(zhí)行打開(kāi)操作,同時(shí)指定打開(kāi)模式,并且在操作完成以后關(guān)閉文件,當(dāng)然在這里我們可以使用上下文管理器來(lái)保證文件的關(guān)閉邏輯。具體如下所示:

>>> import tarfile>>> with tarfile.open(’etc.tar’) as t:... for member in t.getmembers():... print(member.name)

上面的代碼中,導(dǎo)入 tarfile 庫(kù),使用默認(rèn)的讀模式打開(kāi) tar 包,tarfile.open() 函數(shù)返回一個(gè) TarFile 對(duì)象,這個(gè)對(duì)象表示當(dāng)前打開(kāi)的 tar 包,我們可以通過(guò)這個(gè)對(duì)象的方法操作和讀取 tar 包中的內(nèi)容。

tarfile 中有不少函數(shù),其中最常用的有 getnames,extract,extractall 函數(shù):

getnames:獲取 tar 包中的文件列表; extract:提取單個(gè)文件; extractall:提取所有文件。

2.創(chuàng)建 tar 包

從上面的例子中可以看到,讀一個(gè) tar 包與讀一個(gè)文件類(lèi)似,都是以「讀」的方式打開(kāi)文件并得到一個(gè)對(duì)象,然后通過(guò)這個(gè)對(duì)象的方法去操作文件。同樣創(chuàng)建一個(gè) tar 包和寫(xiě)一個(gè)文件也比較類(lèi)似。具體如下所示:

>>> import tarfile>>> with tarfile.open(’etc.tar’, mode=’w’) as f:... f.add(’test.py’)

上面的代碼中,由于我們是創(chuàng)建一個(gè) tar 包,所以以「寫(xiě)」模式打開(kāi) tar 包并得到一個(gè) TarFile 對(duì)象,然后使用 TarFile 對(duì)象的 add 方法將 test.py 文件添加到 tar 包中。

3.tarfile 讀取和創(chuàng)建壓縮包

上面我們用 targfile 創(chuàng)建和讀取未壓縮的 tar 包,但是一般情況下,我們創(chuàng)建 tar 包的時(shí)候都會(huì)使用壓縮算法進(jìn)行壓縮,以加快傳輸速度和減少占用的磁盤(pán)空間。

使用 tarfile 創(chuàng)建和讀取壓縮包非常簡(jiǎn)單,只要在打開(kāi)文件時(shí)指定壓縮算法即可。對(duì)于 tarfile 的 open 函數(shù),以「打開(kāi)模式:壓縮算法」的形式打開(kāi)即可。具體如下所示:

a. 讀取一個(gè)用 gzip 算法壓縮的 tar 包:

>>> import tarfile>>> with tarfile.open(’etc.tar’, mode=’r:gz’) as f:

b. 創(chuàng)建一個(gè)用 bzip2 算法壓縮的 tar 包:

>>> import tarfile>>> with tarfile.open(’etc.tar’, mode=’w:bz2’) as f:

以上就是無(wú)需壓縮軟件,用python幫你操作壓縮包的詳細(xì)內(nèi)容,更多關(guān)于python 壓縮包的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
主站蜘蛛池模板: 巨乳女上司 | 韩国黄色一级毛片 | 成人在线网址 | 成人免费一级在线播放 | 亚洲人成在线精品 | 精品亚洲综合久久中文字幕 | 久久久久久极精品久久久 | 全国男人的天堂天堂网 | 国产精品aⅴ| 亚洲欧美精选 | 在线欧美精品二区三区 | 欧美精品免费线视频观看视频 | 黄人成a动漫片免费网站 | 萌白酱国产一区 | 日本毛片免费看 | 手机在线一区二区三区 | 一区二区三区伦理 | 日韩三级视频在线 | 国产精品福利视频萌白酱 | 99精品免费在线观看 | 成人三级在线播放 | 欧美xx一片 | 日韩欧美一区二区在线观看 | 欧美一区二区精品 | 国产精品久久久久9999小说 | 美女被免费网站在线视频软件 | 免费一级美国片在线观看 | 欧美午夜免费毛片a级 | 欧美国产日韩在线 | 国产精品久久久久久久专区 | 欧美日韩不卡一区 | 激情视频一区 | 91福利网 | 国产激情视频在线播放 | 一级女人毛片 | 日韩久久一级毛片 | 亚洲色视频在线播放网站 | 国产一区二区福利久久 | 二区久久国产乱子伦免费精品 | 欧美14videosex性欧美成人 | 免费一级欧美毛片 |