包含python實現解壓的詞條

本文目錄一覽:

python 解壓7z格式

有項目用到7z的數據壓縮格式,有比較高的壓縮率,但在windows中解壓起來也比較麻煩,先後找了幾個庫,有的無法在windows中使用(libarchive),有的解壓起來性能比較慢(pypack、pattool),還有的是需要調用7z的exe程序,都比較麻煩。

最後找到了 py7zr ,使用起來方便多了,性能也沒啥問題。

安裝:

解壓:

也支持生成7z文件,具體可看官網介紹。

體會:數據壓縮存儲最好不要使用7z格式,比較不常用,可能後續會造成一些麻煩。

用python解壓圖片並打印代碼

import zipfile

# 傳入壓縮文件zfile.zip獲取相關信息

zip_file = zipfile.ZipFile(‘zfile.zip’)

# 獲取壓縮文件中的內容

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 對象有一個 namelist()方法,返回 ZIP 文件中包含的所有文件和文件夾 的字符串的列表。這些字符串可以傳遞給 ZipFile 對象的 getinfo()方法,返回一個關 於特定文件的 ZipInfo 對象。ZipInfo 對象有自己的屬性,諸如表示字節數的 file_size 和 compress_size,它們分別表示原來文件大小和壓縮後文件大小。ZipFile 對象表示 整個歸檔文件,而 ZipInfo 對象則保存該歸檔文件中每個文件的有用信息。

從 ZIP 文件中解壓縮

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

import zipfile

zip_file = zipfile.ZipFile(‘zfile.zip’)

# 解壓

zip_extract = zip_file.extractall()

zip_extract.close()

運行這段代碼後, example.zip 的內容將被解壓縮到 C:\。 或者, 你可以向 extractall()傳遞的一個文件夾名稱,它將文件解壓縮到那個文件夾,而不是當前工作 目錄。如果傳遞給 extractall()方法的文件夾不存在,它會被創建。例如,如果你用 exampleZip.extractall(‘C:\ delicious’)取代處的調用,代碼就會從 example.zip 中解壓 縮文件,放到新創建的 C:\delicious 文件夾中。

ZipFile 對象的 extract()方法從 ZIP 文件中解壓縮單個文件。

創建和添加到 ZIP 文件

要創建你自己的壓縮 ZIP 文件,必須以“寫模式”打開 ZipFile 對象,即傳入’w’ 作為第二個參數(這類似於向 open()函數傳入’w’,以寫模式打開一個文本文件)。

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

import zipfile

zip_file = zipfile.ZipFile(‘new.zip’,’w’)

# 把zfile整個目錄下所有內容,壓縮為new.zip文件

zip_file.write(‘zfile’,compress_type=zipfile.ZIP_DEFLATED)

# 把c.txt文件壓縮成一個壓縮文件

# zip_file.write(‘c.txt’,compress_type=zipfile.ZIP_DEFLATED)

zip_file.close()

這段代碼將創建一個新的 ZIP 文件,名為 new.zip,它包含 spam.txt 壓縮後的內容。

要記住,就像寫入文件一樣,寫模式將擦除 ZIP 文件中所有原有的內容。如果 只是希望將文件添加到原有的 ZIP 文件中,就要向 zipfile.ZipFile()傳入’a’作為第二 個參數,以追加模式打開 ZIP 文件。

下載python然後有一堆文件要解壓

python一堆文件解壓方法如下。

壓縮包解壓要用的是zipfile這個包。

zip_file = zipfile.ZipFile(r’D:\數據源\XX_%s.zip’%yday)

zip_list = zip_file.namelist() # 壓縮文件清單,可以直接看到壓縮包內的各個文件的明細

for f in zip_list: # 遍歷這些文件,逐個解壓出來,

  zip_file.extract(f,r’D:\數據源’)

zip_file.close() # 不能少!

print(‘昨日日誌解壓完成,請在文件夾中驗收!’) # 當然我是不需要查收的(*/ω\*)

這裡的解壓操作實際就相當於鼠標右鍵“解壓到當前文件夾”的效果。

完成解壓後運行.close()是個比較好的習慣,否則可能會導致包括但不限於:

文件會一直被佔用着,可能無法重新打開;

在進程結束之前文件都刪不掉;

文件內容不能即時 flush 到磁盤直到進程結束;

到此,整個流程在無需打開瀏覽器和文件夾的情況下便自動完成了。

為了方便日常運行代碼,這裡把上面的兩個流程包裝成一個函數,下載解壓

#下載昨日日誌

def download_XXlog():

yday = (date.today()+timedelta(days=-1)).strftime(‘%Y%m%d’) # 獲取昨日日期

r =  requests.get(”%yday) # 獲取以日期命名的壓縮包信息

with open(r’D:\數據源\XX_%s.zip’%yday,’wb’) as code: # 將壓縮包內容寫入到 “D:\數據源\” 下,並按日期命名

code.write(r.content)

print(‘昨日XX日誌下載完成。’)

  zip_file = zipfile.ZipFile(r’D:\數據源\XX_%s.zip’%yday)

zip_list = zip_file.namelist() # 壓縮文件清單,可以直接看到壓縮包內的各個文件的明細

for f in zip_list: # 遍歷這些文件,逐個解壓出來,

    zip_file.extract(f,r’D:\數據源’)

zip_file.close() # 不能少!

print(‘昨日日誌解壓完成,請在文件夾中驗收!’)

download_XXlog()

拓展

作為拓展,這裡再加一個可以根據實際情況輸入(input)起始和終止日期,來下載一個特定時間段日誌的函數,這裡就涉及了datetime和time這兩個工具包了。

python中的zipfile?

python中的zipfile模塊是用於解壓/壓縮zip文件的,壓縮a.txt為a.zip,從b.zip解壓出b.txt(假設它們都放在d:\,且b.zip中只有b.txt)示範代碼如下5行:

from os import chdir;

from zipfile import ZipFile;

chdir(“d:/”);

with Zipfile(“d:/b.zip”,”r”) as zipf:zipf.extractall();

with Zipfile(“d:/a.zip”,”w”) as zipf:zipf.write(“d:/a.txt”);

如何通過python代碼解壓zip包

def unzip_file(zip_src, dst_dir):

    r = zipfile.is_zipfile(zip_src)

    if r:     

        fz = zipfile.ZipFile(zip_src, ‘r’)

        for file in fz.namelist():

            fz.extract(file, dst_dir)       

    else:

        print(‘This is not zip’)

#zip_src:是zip文件的全路徑

 

#dst_dir:是要解壓到的目的文件夾

以上代碼是Python3中的實現方式,謝謝

Python實現批量壓縮文件/文件夾——zipfile

zipfile是python里用來做zip格式編碼的壓縮和解壓縮的,由於是很常見的zip格式,所以這個模塊使用頻率也是比較高的,

在這裡對zipfile的使用方法做一些記錄。即方便自己也方便別人。

Python zipfile模塊用來做zip格式編碼的壓縮和解壓縮的,要進行相關操作,首先需要實例化一個 ZipFile 對象。ZipFile 接受一個字符串格式壓縮包名稱作為它的必選參數,第二個參數為可選參數,表示打開模式,類似於文件操作,有r/w/a三種模式,分別代表讀、寫、添加,默認為r,即讀模式。

zipfile里有兩個非常重要的class, 分別是ZipFile和ZipInfo, 在絕大多數的情況下,我們只需要使用這兩個class就可以了。ZipFile是主要的類,用來創建和讀取zip文件而ZipInfo是存儲的zip文件的每個文件的信息的。

ZipFile還提供了如下常用的方法和屬性:

獲取zip文檔內指定文件的信息。返回一個zipfile.ZipInfo對象,它包括文件的詳細信息。

獲取zip文檔內所有文件的信息,返回一個zipfile.ZipInfo的列表。

獲取zip文檔內所有文件的名稱列表。

將zip文檔內的指定文件解壓到當前目錄。參數member指定要解壓的文件名稱或對應的ZipInfo對象;參數path指定了解析文件保存的文件夾;

解壓zip文檔中的所有文件到當前目錄。參數members的默認值為zip文檔內的所有文件名稱列表,也可以自己設置,選擇要解壓的文件名稱。

將zip文檔內的信息打印到控制台上。

設置zip文檔的密碼。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/153332.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-14 03:04
下一篇 2024-11-14 03:04

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29

發表回復

登錄後才能評論