python模塊--zipfile文件壓縮


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那樣關閉文件句柄

zip_files.close()

 

 

 

壓縮文件的名稱、壓縮算法和大小等信息

<ZipInfo filename='zipfile_dir/test1.txt' compress_type=deflate external_attr=0x20 file_size=2918 compress_size=1591>
<ZipInfo filename='zipfile_dir/test2.txt' compress_type=deflate external_attr=0x20 file_size=2918 compress_size=1591>
<ZipInfo filename='zipfile_dir/' external_attr=0x10>

 

壓縮文件目錄下所有文件的名稱

zipfile_dir/test1.txt
zipfile_dir/test2.txt
zipfile_dir/

 

 

二、往zip目錄中添加文件

代碼:

# 在指定zip壓縮文件目錄下創建zip文件

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壓縮后的壓縮文件跟小。

更多關於這幾種算法的區別可以看這兩篇篇文章:

https://www.cnblogs.com/kuang17/p/7193124.html

https://blog.csdn.net/leilonghao/article/details/73200859

 

代碼:

# 解壓后文件放置的目錄

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()

 

解壓成功:

 

參考文章:

https://www.cnblogs.com/kuang17/p/7193124.html

https://blog.csdn.net/leilonghao/article/details/73200859

更多內容,請參考官方文檔:https://docs.python.org/3/library/zipfile.html#zipfile.ZIP_STORED


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM