python模塊--zipfile文件壓縮

zipfile模塊是python中一個處理壓縮文件的模塊,解決了很多咱們日常須要處理壓縮文件的需求 ,本文主要談談zipfile幾個經常使用的用法。html

 

首先我在Windows操做系統中建立以下的文件目錄:python

 

1、讀取壓縮文件:算法

代碼:spa

import zipfile操作系統

import os.net

 

# 壓縮文件路徑code

zip_file_path = r'F:\壓縮文件zipfile\zipfile_dir.zip'htm

# 壓縮文件目錄路徑blog

zip_dir = r'F:\壓縮文件zipfile\zipfile_dir'ip

 

# 打開壓縮文件

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/

 

 

2、往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模塊搜索路徑是沒法找到的。

 

添加成功:

 

3、解壓文件:

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

相關文章
相關標籤/搜索