国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

這篇具有很好參考價(jià)值的文章主要介紹了Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-420913.html

Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

活動(dòng)地址:CSDN21天學(xué)習(xí)挑戰(zhàn)賽

  • zipfile是python里用來(lái)做zip格式編碼的壓縮和解壓縮的 zipfile里有兩個(gè)非常常用的class,
  • 分別是ZipFile和ZipInfo, 在絕大多數(shù)的情況下,我們只需要使用這兩個(gè)class就可以了。

ZipFile是主要的類(lèi),用來(lái)創(chuàng)建和讀取zip文件。
ZipInfo是存儲(chǔ)的zip文件的每個(gè)文件的信息的。

——
先準(zhǔn)備一個(gè)zip 文件進(jìn)行測(cè)試,壓縮包內(nèi)有三個(gè)文件。
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

zipfile.is_zipfile() 方法

測(cè)試filename的文件,看它是否是個(gè)有效的zipfile,有效則返回True,否則返回False

import zipfile

path = 'e:/desktop/test/test.zip'
print(zipfile.is_zipfile(path))

print(zipfile.is_zipfile('e:/desktop/test/test2.zip'))

創(chuàng)建了 test.zip 這個(gè)壓縮包文件,所以返回 true ,test2.zip 這個(gè)文件不存在,返回 false
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile類(lèi)的常用方法

ZipFile.close(): 關(guān)閉文件,結(jié)束時(shí)必須要有

ZipFile.getinfo(name): 獲取zip文檔內(nèi)指定文件的信息。返回一個(gè)zipfile.ZipInfo對(duì)象,它包括文件的詳細(xì)信息。

ZipFile.infolist(): 獲取zip文檔內(nèi)所有文件的信息,返回一個(gè)zipfile.ZipInfo的列表。

ZipFile.namelist(): 獲取zip文檔內(nèi)所有文件的名稱(chēng)列表。

ZipFile.extract(member[, path[, pwd]]):將zip文檔內(nèi)的指定文件解壓到當(dāng)前目錄。

ZipFile.extractall([path[, members[, pwd]]]): 解壓zip文檔中的所有文件到當(dāng)前目錄。

ZipFile.printdir(): 將zip文檔內(nèi)的信息打印到控制臺(tái)上。

ZipFile.setpassword(pwd): 設(shè)置zip文檔的密碼,這個(gè)方法我用的時(shí)候不好使,暫時(shí)沒(méi)找到問(wèn)題所在,建議要加密碼使用 Python調(diào)用linux系統(tǒng)命令加密,或者調(diào)用windows里安裝的壓縮軟件加密。

ZipFile.read(name[, pwd]): 獲取zip文檔內(nèi)指定文件的二進(jìn)制數(shù)據(jù)。

ZipFile.write(filename[, arcname[, compress_type]]):將指定文件添加到zip文檔中。

ZipFile.writestr(zinfo_or_arcname, bytes): writestr()支持將二進(jìn)制數(shù)據(jù)直接寫(xiě)入到壓縮文檔。

——

ZipFile(filename[,mode[,compression[,allowZip64]]])

創(chuàng)建一個(gè)ZipFile對(duì)象,表示一個(gè)zip文件。后面要使用其它方法,前提都要在這個(gè)創(chuàng)建好的對(duì)象基礎(chǔ)上操作。

參數(shù)說(shuō)明:

  • filename:文件對(duì)象;例如:’xxx.zip’
  • mode:可選r,w,a代表不同的打開(kāi)文件的方式;默認(rèn)為’r’只讀;'w’重寫(xiě);'a’添加;
  • compression:指出這個(gè)zipfile用什么壓縮方法,默認(rèn)是ZIP_STORED,另一種選擇是ZIP_DEFLATED;
  • allowZip64:是個(gè)bool型變量,當(dāng)設(shè)置為T(mén)rue的時(shí)候就是說(shuō)可以用來(lái)創(chuàng)建大小大于2G的zip文件,默認(rèn)值是True;
from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
file2 = ZipFile(path,'w')
file3 = ZipFile(path,'a')
print(file)
print(file2)
print(file3)

Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.close()

關(guān)閉文件,結(jié)束時(shí)必須要有

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
print(file)
file.close()
print(file)

Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.getinfo(name)

獲取zip文檔內(nèi)指定文件的信息。返回一個(gè)zipfile.ZipInfo對(duì)象,它包括文件的詳細(xì)信息。

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
print(file.getinfo('test1.txt'))

getinfo() 中的 name參數(shù)必須填寫(xiě),且只指定一個(gè)文件的信息。
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.infolist()

獲取zip文檔內(nèi)所有文件的信息,返回一個(gè)zipfile.ZipInfo的列表。

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
print(file.infolist())

可以看到輸出了全部三個(gè)文件的信息。
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.namelist()

獲取zip文檔內(nèi)所有文件的名稱(chēng)列表。

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
print(file.namelist())

Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.extract(member[, path[, pwd]])

將zip文檔內(nèi)的指定文件解壓到當(dāng)前目錄。

參數(shù)說(shuō)明:

  • 參數(shù)member指定要解壓的文件名稱(chēng)或?qū)?yīng)的ZipInfo對(duì)象;
  • 參數(shù)path指定了解析文件保存的文件夾;
  • 參數(shù)pwd 為解壓密碼。

指定壓縮包內(nèi)的一個(gè)文件解壓出來(lái)

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
file.extract('test1.txt','e:/desktop/test/')
file.close()

將指定文件 'test1.txt' 解壓到 'e:/desktop/test/' 目錄下。
運(yùn)行代碼之后可以看到成功解壓出來(lái)了。這里沒(méi)有用到 pwd 解壓密碼參數(shù),因?yàn)檫@里測(cè)試的壓縮包沒(méi)有加密。
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.extractall(member,path,pwd)

解壓zip文檔中的所有文件到當(dāng)前目錄。

  • 參數(shù)members的默認(rèn)值為zip文檔內(nèi)的所有文件名稱(chēng)列表,也可以自己設(shè)置,選擇要解壓的文件名稱(chēng)。
  • path和pwd與前面的 ZipFile.extract() 一樣,表示解壓路徑和解壓密碼。
from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
file.extractall('e:/desktop/test/')
file.close()

執(zhí)行代碼之后,里面的全部三個(gè)文本文件都解壓出來(lái)了。
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.printdir()

將zip文檔內(nèi)的信息打印到控制臺(tái)上。

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
print(file.printdir())
file.close()

Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.read(name[, pwd])

獲取zip文檔內(nèi)指定文件的二進(jìn)制數(shù)據(jù)。

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path)
b = file.read('test1.txt')
print(b)
print(type(b))
file.close()

Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

可以看到打印了 test1.txt 的內(nèi)容,不過(guò)是二進(jìn)制數(shù)據(jù)。
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.write(filename[, arcname[, compress_type]])

將指定文件添加到zip文檔中。

參數(shù)說(shuō)明:

  • 參數(shù)filename為文件路徑,
  • 參數(shù)arcname為添加到zip文檔之后保存的名稱(chēng),
  • 參數(shù)compress_type表示壓縮方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。

先創(chuàng)建一個(gè) test4.txt ,用于等下寫(xiě)入壓縮包。
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path,'a')
file.write('e:/desktop/test/test4.txt','123.txt')
file.close()

執(zhí)行代碼后,可以看到 test4.txt 已經(jīng)寫(xiě)進(jìn)去了,并且保存在壓縮包內(nèi)的文件名為 123.txt
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipFile.writestr(zinfo_or_arcname, bytes)

writestr()支持將二進(jìn)制數(shù)據(jù)直接寫(xiě)入到壓縮文檔。

from zipfile import ZipFile

path = 'e:/desktop/test/test.zip'
file = ZipFile(path,'a')
print(file.printdir())
file.writestr('test5.txt','here is test5')
print('-------------------------------')
print(file.printdir())
file.close()

在壓縮包中創(chuàng)建了一個(gè) test5.txt 文件。
Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包

——

ZipInfo 類(lèi)的常用方法

ZipInfo.filename: 獲取文件名稱(chēng)。
ZipInfo.date_time: 獲取文件最后修改時(shí)間。返回一個(gè)包含6個(gè)元素的元組:(年, 月, 日, 時(shí), 分, 秒)
ZipInfo.compress_type: 壓縮類(lèi)型。
ZipInfo.comment: 文檔說(shuō)明。
ZipInfo.extr: 擴(kuò)展項(xiàng)數(shù)據(jù)。
ZipInfo.create_system: 獲取創(chuàng)建該zip文檔的系統(tǒng)。
ZipInfo.create_version: 獲取 創(chuàng)建zip文檔的PKZIP版本。
ZipInfo.extract_version: 獲取 解壓zip文檔所需的PKZIP版本。
ZipInfo.reserved: 預(yù)留字段,當(dāng)前實(shí)現(xiàn)總是返回0。
ZipInfo.flag_bits: zip標(biāo)志位。
ZipInfo.volume: 文件頭的卷標(biāo)。
ZipInfo.internal_attr: 內(nèi)部屬性。
ZipInfo.external_attr: 外部屬性。
ZipInfo.header_offset: 文件頭偏移位。
ZipInfo.CRC: 未壓縮文件的CRC-32。
ZipInfo.compress_size: 獲取壓縮后的大小。
ZipInfo.file_size: 獲取未壓縮的文件大小。

?

到了這里,關(guān)于Python學(xué)習(xí)第九篇:zipfile 庫(kù)操作壓縮包的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第九篇 API設(shè)計(jì)原則與最佳實(shí)踐

    深入淺出HTTP請(qǐng)求前后端交互系列專(zhuān)題 第一章 引言-HTTP協(xié)議基礎(chǔ)概念和前后端分離架構(gòu)請(qǐng)求交互概述 第二章 HTTP請(qǐng)求方法、狀態(tài)碼詳解與緩存機(jī)制解析 第三章 前端發(fā)起HTTP請(qǐng)求 第四章 前后端數(shù)據(jù)交換格式詳解 第五章 跨域資源共享(CORS):現(xiàn)代Web開(kāi)發(fā)中的關(guān)鍵機(jī)制 第六篇 提

    2024年01月23日
    瀏覽(25)
  • 【ZYNQ入門(mén)】第九篇、雙幀緩存的原理

    【ZYNQ入門(mén)】第九篇、雙幀緩存的原理

    目錄 第一部分、基礎(chǔ)知識(shí) ?1、HDMI視頻撕裂的原理 2、雙幀緩存的原理 第二部分、代碼設(shè)計(jì)原理 1、AXI_HP_WR模塊 2、AXI_HP_RD模塊 3、Block design設(shè)計(jì) 第三部分、總結(jié) 1、寫(xiě)在最后 2、更多文章 ? ? ? ? 在調(diào)試攝像頭的時(shí)候, 攝像頭采集的圖像的分辨率為2200*1125@30Hz ,因此攝像頭采

    2024年01月24日
    瀏覽(17)
  • ESP32系列--第九篇 ADC的使用

    ESP32系列--第九篇 ADC的使用

    ? ? ? ? 本篇主要介紹ESP32的ADC功能,ESP32有兩個(gè)ADC模塊,分別為ADC1/ADC2,每個(gè)ESP32系列具有的通道數(shù)不一樣,詳情請(qǐng)看下表。 ? ? ? ? 在WiFi在使用時(shí),ADC2的使用受到一些限制,實(shí)際應(yīng)用場(chǎng)景中一般只使用ADC1即可。 ADC的IO引腳分配 ESP32系列?(下表來(lái)自ESP-IDF開(kāi)發(fā)文檔) GPIO

    2024年02月05日
    瀏覽(24)
  • 第九篇:node靜態(tài)文件服務(wù)(中間件)

    第九篇:node靜態(tài)文件服務(wù)(中間件)

    ????江城開(kāi)朗的豌豆 :個(gè)人主頁(yè) ????個(gè)人專(zhuān)欄? :《 VUE 》?《 javaScript 》 ??? ?個(gè)人網(wǎng)站? :《 江城開(kāi)朗的豌豆?? 》? ???生活的理想,就是為了理想的生活?! 當(dāng)今互聯(lián)網(wǎng)時(shí)代,Node.js 成為了最受歡迎的服務(wù)器端開(kāi)發(fā)平臺(tái)之一。作為一名小白,學(xué)習(xí) Node.js 可能會(huì)讓你感

    2024年02月20日
    瀏覽(18)
  • 【知識(shí)點(diǎn)隨筆分享 | 第九篇】常見(jiàn)的限流算法

    【知識(shí)點(diǎn)隨筆分享 | 第九篇】常見(jiàn)的限流算法

    目錄 前言: 1.固定窗口限流:? 缺點(diǎn):? 2.滑動(dòng)窗口限流: ?優(yōu)點(diǎn): 滴桶限流: 缺點(diǎn): 令牌桶限流:? 優(yōu)點(diǎn): 總結(jié): ? ????????當(dāng)今互聯(lián)網(wǎng)時(shí)代,隨著網(wǎng)絡(luò)流量的快速增長(zhǎng)和系統(tǒng)負(fù)載的不斷加重,限流算法作為一種重要的網(wǎng)絡(luò)管理工具變得愈發(fā)重要。限流算法通過(guò)控制系

    2024年02月04日
    瀏覽(19)
  • 【HarmonyOS4.0】第九篇-ArkUI布局容器組件(一)

    【HarmonyOS4.0】第九篇-ArkUI布局容器組件(一)

    容器組件指的是它可以包含一個(gè)或多個(gè)子組件的組件,除了前邊介紹過(guò)的公共屬性外。 線(xiàn)性容器類(lèi)表示按照水平方向或者豎直方向排列子組件的容器,ArkUI開(kāi)發(fā)框架通過(guò) Row 和 Colum 來(lái)實(shí)現(xiàn)線(xiàn)性布局。 什么是主軸和縱軸? 對(duì)于線(xiàn)性容器來(lái)說(shuō),有主軸和縱軸之分: 如果布局是沿

    2024年02月02日
    瀏覽(31)
  • 【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第九篇】棧與隊(duì)列

    【夜深人靜學(xué)數(shù)據(jù)結(jié)構(gòu)與算法 | 第九篇】棧與隊(duì)列

    目錄 ?前言: 棧: 棧的實(shí)際應(yīng)用:? 隊(duì)列: 隊(duì)列的實(shí)際應(yīng)用: 總結(jié): ? ? ? ? 棧與隊(duì)列是我們學(xué)習(xí)的兩個(gè)經(jīng)典的數(shù)據(jù)結(jié)構(gòu),這兩個(gè)數(shù)據(jù)結(jié)構(gòu)應(yīng)用廣泛,在計(jì)算機(jī)內(nèi)有很多底層應(yīng)用,而很多算法也是依靠棧和隊(duì)列來(lái)實(shí)現(xiàn)的,因此我們要想學(xué)好數(shù)據(jù)結(jié)構(gòu)與算法,就要學(xué)好棧與

    2024年02月15日
    瀏覽(13)
  • 【數(shù)據(jù)結(jié)構(gòu)入門(mén)精講 | 第九篇】考研408排序算法專(zhuān)項(xiàng)練習(xí)(一)

    【數(shù)據(jù)結(jié)構(gòu)入門(mén)精講 | 第九篇】考研408排序算法專(zhuān)項(xiàng)練習(xí)(一)

    前面幾篇文章介紹的是排序算法,現(xiàn)在讓我們開(kāi)始排序算法的專(zhuān)項(xiàng)練習(xí)。 1.希爾排序是穩(wěn)定的算法。(錯(cuò)) 解析:穩(wěn)定性是指如果兩個(gè)元素在排序前后的相對(duì)順序保持不變,那么這個(gè)排序算法就是穩(wěn)定的。對(duì)于具有相同的元素,排序后它們的相對(duì)位置應(yīng)該保持不變。

    2024年02月03日
    瀏覽(27)
  • 干翻Dubbo系列第九篇:Dubbo體系中序列化詳解

    干翻Dubbo系列第九篇:Dubbo體系中序列化詳解

    文章目錄 文章說(shuō)明 一:序列化概念 1:概念 2:Dubbo中序列化方式 二:Kyro序列化方案 1:引入依賴(lài) 2:XML的配置方式 3:Boot的方式 4:Consumer端調(diào)用 三:FST序列化方式使用 1:引入依賴(lài) 2:XML的配置方式 3:SpringBoot的配置方式 4:?Consumer端調(diào)? 序列化是RPC的時(shí)候,將需要傳輸?shù)?/p>

    2024年02月13日
    瀏覽(83)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包