Python之壓縮檔案

2021-10-02 19:41:48 字數 2308 閱讀 2481

系統:windows10_64位

python版本:3.7

zipfile模組是python的內嵌模組,所以不需要安裝

比較簡單,直接上**

import zipfile

'''zip_file_name: 待解壓的zip檔案

data_dir: 解壓檔案的存放路徑

'''f = zipfile.zipfile(zip_file_name,

"r")

f.extractall(path=data_dir)

f.close(

)

注意:此方法只能解壓zip檔案,不能解壓rar、tar等壓縮檔案,暫時還沒有找到通用的解壓方法。。。

import zipfile

'''target: zip壓縮檔案路徑

filename: 要壓縮的檔案路徑

file_url: 要壓縮檔案在壓縮資料夾內的路徑(一般是filename的去掉前面一部分的相對路徑,如果不去會壓縮絕對路徑)

'''f = zipfile.zipfile(target,

'w', zipfile.zip_deflated)

f.write(filename, file_url)

f.close(

)

關於引數:

zipfile.zipfile()的引數:

​ zip_deflated:表示壓縮, zip_store:表示只打包,不壓縮。

​ allowzip64:一般當檔案大小大於2gb時,將其設定為true

def

zip_dirs

(dir_list:

list

, zip_filename)

: zip_file = zipfile.zipfile(zip_filename,

"w", zipfile.zip_deflated, allowzip64=

true

)for dir_path in dir_list:

parent_dir = os.path.dirname(dir_path)

for path, dir_list, file_list in os.walk(dir_path)

:# 去掉目標跟路徑,只對目標資料夾下邊的檔案及資料夾進行壓縮

file_path = path.replace(parent_dir,"")

for filename in file_list:

zip_file.write(os.path.join(path, filename)

, os.path.join(file_path, filename)

) zip_file.close(

)

pip install unrar 或 pip install rarfile
from unrar import rarfile

file

= rarfile.rarfile(

'file_name'

)#這裡寫入的是需要解壓的檔案,別忘了加路徑

file

.extractall(

'you_want_path'

)#這裡寫入的是你想要解壓到的資料夾

但是這樣會報錯:

lookuperror: couldn't find path to unrar library.
找到安裝目錄,將其新增到環境變數,64位的需要將x64資料夾新增環境變數

注意:因為unrar模組識別的檔案是unrar.dll和unrar.lib,所以將資料夾中的unrar.dll和unrar.lib用小寫重新命名。windows64位的還要將x64下面的unrar64.lib和unrar64.dall改為unrar.lib和unrar.dall去掉64且為小寫。

新增完成後重啟pycharm即可(不生效的話需要重啟電腦生效)。

——end——

lookuperror: couldn』t find path to unrar library.

unrar解壓縮.rar檔案

Python之壓縮檔案

zipfile是python裡用來做zip格式編碼的壓縮和解壓縮的module,zipfile裡有兩個非常重要的class zipfile和zipinfo。zipfile是主要的類,用來建立和讀取zip檔案而zipinfo是儲存的zip檔案的每個檔案的資訊。在這裡我需要把乙個目錄壓縮,這就要將目錄裡...

python檔案操作(三)之壓縮檔案

使用python自帶的zipfile模組 coding cp936 輸入 目錄路徑 壓縮名 輸出 rar壓縮包,存放於桌面 源目錄所在位置 import os,zipfile def zipfun souce,filename 獲取該目錄的上一級目錄,壓縮包與目錄存放相同的目錄下 dest souc...

python 讀寫壓縮檔案

gzip和bz2模組可以很容易的處理這些檔案。兩個模組都為open 函式提供了另外的實現來解決這個問題。比如,為了以文字形式讀取壓縮檔案,可以這樣做 gzip compression import gzip with gzip.open somefile.gz rt as f text f.read...