zipfile模組是python中乙個處理壓縮檔案的模組,解決了不少我們平常需要處理壓縮檔案的需求 ,本文主要談談zipfile幾個常用的用法。
首先我在windows作業系統中建立如下的檔案目錄:
一、讀取壓縮檔案:
**:import zipfile
import os
# 壓縮檔案路徑
zip_file_path = r'f:\壓縮檔案zipfile\zipfile_dir.zip'
# 壓縮檔案目錄路徑
zip_dir = r'f:\壓縮檔案zipfile\zipfile_dir'
# 開啟壓縮檔案
zip_files = zipfile.zipfile(zip_file_path,mode='r')
# 獲取zip壓縮檔案的相關資訊
for content in zip_files.infolist():
print(content)
# 遍歷zip壓縮檔案的檔名稱
for name in zip_files.namelist():
print(name)
# 記得要像讀取file那樣關閉檔案控制代碼
壓縮檔案的名稱、壓縮演算法和大小等資訊
'壓縮檔案目錄下所有檔案的名稱zipfile_dir/test1.txt
' compress_type=deflate external_attr=0x20 file_size=2918 compress_size=1591>
'zipfile_dir/test2.txt
' compress_type=deflate external_attr=0x20 file_size=2918 compress_size=1591>
'zipfile_dir/
' external_attr=0x10>
zipfile_dir/test1.txt二、往zip目錄中新增檔案**:# 在指定zip壓縮檔案目錄下建立zip檔案zipfile_dir/test2.txt
zipfile_dir/
create_zip_file = zipfile.zipfile(zip_file_path, mode='a', compression=zipfile.zip_deflated)
new_file_path = os.path.join(zip_dir,r'readme.txt')
# 將資料夾中的檔案拷貝進zip目錄
file_name = 'readme.txt'
create_zip_file.write(new_file_path,file_name)
create_zip_file.close()
注意:加入zip目錄的檔案本身在資料夾中已經存在,否則zipfile模組搜尋路徑是無法找到的。
新增成功:
三、解壓檔案:
zipfile提供的壓縮方法有:
zip_stored,zip_deflated, zip_bzip2和zip_lzma
zip_storeed:只是作為一種儲存,實際上並未壓縮
zip_deflated:用的是gzip壓縮演算法
zip_bzip2:用的是bzip2壓縮演算法
zip_lzma:用的是lzma壓縮演算法
gzip和bzip2壓縮演算法的區別:
使用 gzip要比bzip2快,但是bzip2會獲得比 gzip更高的壓縮率,即bzip壓縮後的壓縮檔案跟小。
**:# 解壓後檔案放置的目錄
unzip_dir = r'f:\tk_demo_test'
# 解壓前檔案的zip目錄
zip_file2_path = r'f:\tk_demo.zip'
unzip_files = zipfile.zipfile(zip_file2_path,mode='r',compression=zipfile.zip_deflated)
unzip_files.extractall(unzip_dir)
unzip_files.close()
解壓成功:
Python基礎 ZipFile模組
zipfile和zipinfo,在絕大多數的情況下,我們只需要使用這兩個class就可以了。zipfile是主要的類,用來建立和讀取zip檔案。而zipinfo是儲存的zip檔案的每個檔案的資訊的。import zipfile z zipfile.zipfile filename,r for i i...
Python模組zipfile原理及使用方法詳解
zipfile是python裡用來做zip格式編碼的壓縮和解壓縮的,由於是很常見的zip格式,所以這個模組使用頻率也是比較高的 zipfile裡有兩個非常重要的class,分別是zipfile和zipinfo,在絕大多數的情況下,我們只需要使用這兩個class就可以了。zipfile是主要的類,用來...
Python中zipfile模組最最最最簡單的例子
用python寫的乙個簡單的壓縮檔案處理 寫得要被人打的節奏 bug多多 encoding utf 8 import zipfile import os defmenu print 1 列出所有壓縮檔案 2 解壓指定檔案 3 加入壓縮檔案 4 退出 defunzip zf zf.printdir z...