亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Python壓縮包解決控制模塊zipfile和py7zr實(shí)際操作編碼

89542767 / 1077人閱讀

  現(xiàn)在對(duì)文件信息壓縮和解壓縮較為常見(jiàn)的文件格式便是zrar格式和7z文件格式,本文關(guān)鍵講了Python壓縮包解決控制模塊zipfile和py7zr,必須的小伙伴可以借鑒一下


  現(xiàn)在對(duì)文件信息壓縮和解壓縮較為常見(jiàn)的文件格式便是zrar格式和7z文件格式,現(xiàn)在就以篇文章來(lái)融匯貫通會(huì)該2個(gè)壓縮文件格式操作。


  一:zipfile的常見(jiàn)實(shí)際操作


  1,壓縮包


  zipfile.ZipFile(file[,mode[,compression[,allowZip64]]])


  主要參數(shù)file表示文檔的路線(xiàn);主要參數(shù)mode標(biāo)示開(kāi)啟zip文件的方式,主要有三種mode


  緩解壓力:r


  縮?。簑


  增加縮?。篴


  初始值為'r',表明讀早已存有的zip文件,還可以為'w'或'a','w'表明新創(chuàng)建一個(gè)zip文檔或涵蓋1個(gè)早已存有的zip文檔,‘a(chǎn)’表明增加縮小


  下面我們就構(gòu)建一個(gè)壓縮包result.zip,并縮小test文件夾中的所有文件夾


  import zipfile
  import os
  testdir="D:FTZpython_toolresulttest"
  filename="./result.zip"
  z=zipfile.ZipFile(filename,'w')
  for d in os.listdir(testdir):
  z.write(d)
  z.close
  當(dāng)然上面還可以用with的方法打開(kāi)
  import zipfile
  import os
  testdir="D:DPIpython_toolresulttest"
  filename="./result.zip"
  with zipfile.ZipFile(filename,'w')as z:
  for d in os.listdir(testdir):
  z.write(d)
  z.close

  2,解壓縮文件


  import zipfile
  import os
  testdir="D:FTZpython_toolresulttest"
  filename="./result.zip"
  with zipfile.ZipFile(filename,'r')as z:
  z.extractall(testdir)


  需要注意的是有些壓縮包解壓是有密碼,這時(shí)候調(diào)用extractall的時(shí)候也支持輸入密碼,在python3中,解壓文件的密碼參數(shù)pwd接收的是二進(jìn)制的值,所以要在前面加一個(gè)b

  z.extractall(testdir,pwd=b"ftz")


  3,列出壓縮包里的所有文件


  import zipfile
  import os
  testdir="D:DPIpython_toolresulttest"
  filename="./result.zip"
  with zipfile.ZipFile(filename,'r')as z:
  files=z.namelist()
  print(files)

  運(yùn)行結(jié)果如下,返回的是一個(gè)列表:


  4,其他常用的方法


  import zipfile
  import os
  testdir="D:ftzpython_toolresulttest"
  filename="./result.zip"
  with zipfile.ZipFile(filename,'r')as z:
  z.setpassword(b'ftz1')#設(shè)置zip文檔的密碼。
  z.printdir()#將zip文檔內(nèi)的信息打印到控制臺(tái)上。
  data=z.read('file.yaml')#獲取zip文檔內(nèi)指定文件的二進(jìn)制數(shù)據(jù)
  print(data)
  info=z.getinfo('file.yaml')#方法返回的是一個(gè)ZipInfo對(duì)象,表示zip文檔中相應(yīng)文件的信息。它支持如下屬性
  print("獲取文件名稱(chēng):",info.filename)
  print("獲取文件最后修改時(shí)間:",info.date_time)
  print("獲取壓縮類(lèi)型:",info.compress_type)
  print("獲取壓縮后的大?。?quot;,info.compress_size)
  print("獲取未壓縮的文件大?。?quot;,info.file_size)
  print("判斷是否是壓縮文件:",zipfile.is_zipfile(filename))


  運(yùn)行結(jié)果如下:


  File Name Modified Size


  data_yaml.yaml 2022-06-25 10:50:42 198


  file.yaml 2022-06-25 10:13:46 123


  vnfname.txt 2022-01-14 11:27:56 9320


  b'xe4xb8x80xe7xbaxa7xe6xa0x87xe9xa2x98:nxe4xbax8cxe7xbaxa7xe6xa0x87xe9xa2x981:n b:1n c:2n a:3nxe4xbax8cxe7xbaxa7xe6xa0x87xe9xa2x982:n f:7n t:8n z:9'


  獲取文件名稱(chēng):file.yaml


  獲取文件最后修改時(shí)間:(2022,6,25,10,13,46)


  獲取壓縮類(lèi)型:0


  獲取壓縮后的大?。?23


  獲取未壓縮的文件大小:123


  判斷是否是壓縮文件:True


  [Finished in 0.2s]


  當(dāng)然getinfo也支持其他的屬性,下面給出比較全的屬性和方法


  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:獲取未壓縮的文件大小。


  二:py7zr的常用操作


  1,壓縮文件


  import py7zr
  with py7zr.SevenZipFile('target.7z','w')as archive:
  archive.writeall('/path/to/base_dir','base')
  如果想設(shè)置密碼壓縮
  import py7zr
  with py7zr.SevenZipFile('target.7z','w',password='secret')as archive:
  archive.writeall('/path/to/base_dir','base')


  2,解壓縮文件


  import py7zr
  archive=py7zr.SevenZipFile('sample.7z',mode='r')
  archive.extractall(path="/tmp")
  archive.close()


  也支持with模式


  import py7zr
  with py7zr.SevenZipFile('sample.7z',mode='r')as z:
  z.extractall()
  with py7zr.SevenZipFile('target.7z','w')as z:
  z.writeall('./base_dir')


  py7z也支持提取某個(gè)文件或者符合正則匹配的文件


  import py7zr
  import re
  filter_pattern=re.compile(r'<your/target/file_and_directories/regex/expression>')
  with SevenZipFile('archive.7z','r')as archive:
  allfiles=archive.getnames()
  selective_files=[f for f in allfiles if filter_pattern.match(f)]
  archive.extract(targets=selective_files)


  支持解壓縮加密的7z文件


  import py7zr
  with py7zr.SevenZipFile('encrypted.7z',mode='r',password='secret')as z:
  z.extractall()


  綜上所述,這篇文章就給大家介紹到這里了,希望可以給各位讀者帶來(lái)幫助。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/129071.html

相關(guān)文章

  • Python 編程速成

    摘要:同時(shí)無(wú)論在哪種平臺(tái)上,都可以用進(jìn)行系統(tǒng)編程。這樣導(dǎo)入模塊并使用生成隨機(jī)數(shù)中的模塊提供了生成隨機(jī)數(shù)的函數(shù)。生成的隨機(jī)數(shù)介于和之間??梢詮淖约憾x的范圍中生成一個(gè)隨機(jī)數(shù),如下所示操作日期和時(shí)間你可以從日期中提取所需的值,如下所示。 翻譯:瘋狂的技術(shù)宅https://likegeeks.com/python-... 本文首發(fā)微信公眾號(hào):前端先鋒歡迎關(guān)注,每天都給你推送新鮮的前端技術(shù)文章 ...

    187J3X1 評(píng)論0 收藏0
  • Python暴力破解zip文件口令

    摘要:通過(guò)內(nèi)置的模塊實(shí)現(xiàn)對(duì)文件的解壓,加點(diǎn)料完成口令破解模塊基本使用使用壓縮文件創(chuàng)建一個(gè)文件對(duì)象,壓縮是需要把改為將文件寫(xiě)入文件中,即將文件壓縮將文件對(duì)象關(guān)閉使用解壓文件解壓準(zhǔn)備階段首先你需要一個(gè)壓縮文件,并且給它加上密碼,樣子長(zhǎng)成這樣然后你就成 通過(guò)Python內(nèi)置的zipfile模塊實(shí)現(xiàn)對(duì)zip文件的解壓,加點(diǎn)料完成口令破解 zipfile模塊基本使用 使用zipfile壓縮文件 imp...

    hufeng 評(píng)論0 收藏0
  • python標(biāo)準(zhǔn)庫(kù)學(xué)習(xí)之zipfile模塊

    摘要:模塊里有兩個(gè)非常重要的分別是和。返回一個(gè)對(duì)象,它包括文件的詳細(xì)信息。將文檔內(nèi)的指定文件解壓到當(dāng)前目錄。為文件路徑,為添加到文檔之后保存的名稱(chēng)參數(shù)表示壓縮方法,它的值可以是或。預(yù)留字段,當(dāng)前實(shí)現(xiàn)總是返回。 ZipFile模塊里有兩個(gè)非常重要的class, 分別是 ZipFile和ZipInfo。ZipFile是主要的類(lèi),用來(lái)創(chuàng)建和讀取zip文件,而ZipInfo是存儲(chǔ)的zip文件的每個(gè)文...

    Magicer 評(píng)論0 收藏0
  • 直接從壓縮中讀取,遍歷CSV文件

    摘要:最近這段時(shí)間遇到了一個(gè)問(wèn)題,直接打開(kāi)壓縮包文件后,用讀后,用進(jìn)行遍歷時(shí),會(huì)提示。出問(wèn)題的代碼是這樣的的英文縮寫(xiě)是分析原因后,主要是因?yàn)樽x進(jìn)來(lái)的內(nèi)容是類(lèi)型,讀進(jìn)去的類(lèi)型也是,造成無(wú)法遍歷。 最近這段時(shí)間遇到了一個(gè)問(wèn)題,直接打開(kāi)壓縮包文件后,用csv.reader讀后,用for in 進(jìn)行遍歷時(shí),會(huì)提示:iterator should return strings not bytes (...

    FrancisSoung 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<