最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)文件壓縮和解壓的示例代碼

 更新時(shí)間:2020年08月12日 14:57:01   作者:TalkPython  
這篇文章主要介紹了Python實(shí)現(xiàn)文件壓縮和解壓的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下

大家可能都熟悉.zip格式的文件。它可以把多個(gè)文件,壓縮成一個(gè)文件。這在網(wǎng)絡(luò)上傳輸時(shí)很有用,而且節(jié)省硬盤空間。

接下來,我們使用Python實(shí)現(xiàn)壓縮和解壓。

讀取ZIP文件信息

要讀取ZIP文件的內(nèi)容,首先必須創(chuàng)建一個(gè)ZipFile對象。ZipFile對象在概念上與File對象相似。

要?jiǎng)?chuàng)建一個(gè) ZipFile 對象,就調(diào)用 zipfile.ZipFile()函數(shù),向它傳入一個(gè)字符串,表示.zip 文件的文件名。 請注意,zipfile 是 Python 模塊的名稱,ZipFile()是函數(shù)的名稱。

import zipfile

# 傳入壓縮文件zfile.zip獲取相關(guān)信息
zip_file = zipfile.ZipFile('zfile.zip')

# 獲取壓縮文件中的內(nèi)容
f_content = zip_file.namelist()

# 壓縮前的大小
f_size = zip_file.getinfo('zfile/a.txt').file_size

# 壓縮后的大小
c_size = zip_file.getinfo('zfile/a.txt').compress_size

ZipFile 對象有一個(gè) namelist()方法,返回 ZIP 文件中包含的所有文件和文件夾 的字符串的列表。這些字符串可以傳遞給 ZipFile 對象的 getinfo()方法,返回一個(gè)關(guān) 于特定文件的 ZipInfo 對象。ZipInfo 對象有自己的屬性,諸如表示字節(jié)數(shù)的 file_size 和 compress_size,它們分別表示原來文件大小和壓縮后文件大小。ZipFile 對象表示 整個(gè)歸檔文件,而 ZipInfo 對象則保存該歸檔文件中每個(gè)文件的有用信息。

從 ZIP 文件中解壓縮

ZipFile 對象的 extractall()方法從 ZIP 文件中解壓縮所有文件和文件夾,放到當(dāng) 前工作目錄中。

import zipfile

zip_file = zipfile.ZipFile('zfile.zip')
# 解壓
zip_extract = zip_file.extractall()
zip_extract.close()

運(yùn)行這段代碼后, example.zip 的內(nèi)容將被解壓縮到 C:\。 或者, 你可以向 extractall()傳遞的一個(gè)文件夾名稱,它將文件解壓縮到那個(gè)文件夾,而不是當(dāng)前工作 目錄。如果傳遞給 extractall()方法的文件夾不存在,它會(huì)被創(chuàng)建。例如,如果你用 exampleZip.extractall('C:\ delicious')取代處的調(diào)用,代碼就會(huì)從 example.zip 中解壓 縮文件,放到新創(chuàng)建的 C:\delicious 文件夾中。
ZipFile 對象的 extract()方法從 ZIP 文件中解壓縮單個(gè)文件。

創(chuàng)建和添加到 ZIP 文件

要?jiǎng)?chuàng)建你自己的壓縮 ZIP 文件,必須以“寫模式”打開 ZipFile 對象,即傳入'w' 作為第二個(gè)參數(shù)(這類似于向 open()函數(shù)傳入'w',以寫模式打開一個(gè)文本文件)。

如果向 ZipFile 對象的 write()方法傳入一個(gè)路徑,Python 就會(huì)壓縮該路徑所指 的文件,將它加到 ZIP 文件中。write()方法的第一個(gè)參數(shù)是一個(gè)字符串,代表要添 加的文件名。第二個(gè)參數(shù)是“壓縮類型”參數(shù),它告訴計(jì)算機(jī)使用怎樣的算法來壓 縮文件。可以總是將這個(gè)值設(shè)置為 zipfile.ZIP_DEFLATED(這指定了 deflate 壓縮 算法,它對各種類型的數(shù)據(jù)都很有效)。

import zipfile

zip_file = zipfile.ZipFile('new.zip','w')
# 把zfile整個(gè)目錄下所有內(nèi)容,壓縮為new.zip文件
zip_file.write('zfile',compress_type=zipfile.ZIP_DEFLATED)
# 把c.txt文件壓縮成一個(gè)壓縮文件
# zip_file.write('c.txt',compress_type=zipfile.ZIP_DEFLATED)
zip_file.close()

這段代碼將創(chuàng)建一個(gè)新的 ZIP 文件,名為 new.zip,它包含 spam.txt 壓縮后的內(nèi)容。
要記住,就像寫入文件一樣,寫模式將擦除 ZIP 文件中所有原有的內(nèi)容。如果 只是希望將文件添加到原有的 ZIP 文件中,就要向 zipfile.ZipFile()傳入'a'作為第二 個(gè)參數(shù),以追加模式打開 ZIP 文件。

以上就是Python實(shí)現(xiàn)文件壓縮和解壓的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于python 壓縮和解壓的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python列表pop()函數(shù)使用實(shí)例詳解

    Python列表pop()函數(shù)使用實(shí)例詳解

    這篇文章主要介紹了Python列表pop()函數(shù)使用實(shí)例詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • jupyter lab文件導(dǎo)出/下載方式

    jupyter lab文件導(dǎo)出/下載方式

    這篇文章主要介紹了jupyter lab文件導(dǎo)出/下載方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 使用Python腳本來獲取Cisco設(shè)備信息的示例

    使用Python腳本來獲取Cisco設(shè)備信息的示例

    這篇文章主要介紹了編寫Python腳本來獲取Python腳本來獲取Cisco設(shè)備信息的教程,文中的示例是獲取一臺(tái)思科交換機(jī)的腳本,需要的朋友可以參考下
    2015-05-05
  • python自動(dòng)化測試三部曲之unittest框架的實(shí)現(xiàn)

    python自動(dòng)化測試三部曲之unittest框架的實(shí)現(xiàn)

    這篇文章主要介紹了python自動(dòng)化測試三部曲之unittest框架的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • flask實(shí)現(xiàn)python方法轉(zhuǎn)換服務(wù)的方法

    flask實(shí)現(xiàn)python方法轉(zhuǎn)換服務(wù)的方法

    flask是一個(gè)web框架,可以通過提供的裝飾器@server.route()將普通函數(shù)轉(zhuǎn)換為服務(wù),這篇文章主要介紹了flask實(shí)現(xiàn)python方法轉(zhuǎn)換服務(wù),需要的朋友可以參考下
    2022-05-05
  • python軟件都是免費(fèi)的嗎

    python軟件都是免費(fèi)的嗎

    在本篇文章中小編給大家整理的是關(guān)于python軟件免是否費(fèi)的相關(guān)知識點(diǎn),需要的朋友們可以參考下。
    2020-06-06
  • Python中用Descriptor實(shí)現(xiàn)類級屬性(Property)詳解

    Python中用Descriptor實(shí)現(xiàn)類級屬性(Property)詳解

    這篇文章主要介紹了Python中用Descriptor實(shí)現(xiàn)類級屬性(Property)詳解,本文先是講解了decorator是什么,然后給出了通過Descriptor來做一個(gè)類級的Property實(shí)例,需要的朋友可以參考下
    2014-09-09
  • Python中Socket編程底層原理解析與應(yīng)用實(shí)戰(zhàn)

    Python中Socket編程底層原理解析與應(yīng)用實(shí)戰(zhàn)

    Socket編程是網(wǎng)絡(luò)通信的基礎(chǔ),Python通過內(nèi)置的socket模塊提供了強(qiáng)大的網(wǎng)絡(luò)編程接口,本文將結(jié)合實(shí)際案例,詳細(xì)介紹Python中Socket編程的基本概念、常用方法和實(shí)際應(yīng)用,需要的朋友可以參考下
    2024-08-08
  • 對python中的控制條件、循環(huán)和跳出詳解

    對python中的控制條件、循環(huán)和跳出詳解

    今天小編就為大家分享一篇對python中的控制條件、循環(huán)和跳出詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 使用systemd部署服務(wù)的過程解析

    使用systemd部署服務(wù)的過程解析

    這篇文章主要介紹了使用systemd部署服務(wù)的過程解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評論

琼海市| 阳城县| 武强县| 安康市| 望江县| 时尚| 山阴县| 栾城县| 河东区| 白银市| 清苑县| 藁城市| 什邡市| 宜城市| 黑龙江省| 浮梁县| 兴安盟| 永昌县| 宜都市| 岢岚县| 云南省| 旌德县| 湾仔区| 鹤峰县| 抚宁县| 织金县| 桐乡市| 盐源县| 乌兰浩特市| 永年县| 青神县| 铜陵市| 伽师县| 大方县| 江源县| 洱源县| 会东县| 新巴尔虎右旗| 油尖旺区| 九寨沟县| 乾安县|