欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python模块--zipfile文件压缩

程序员文章站 2022-04-23 08:21:44
zipfile模块是python中一个处理压缩文件的模块,解决了不少我们平常需要处理压缩文件的需求 ,本文主要谈谈zipfile几个常用的用法。 首先我在Windows操作系统中创建如下的文件目录: 一、读取压缩文件: 代码: import zipfile import os # 压缩文件路径 zi ......

zipfile模块是python中一个处理压缩文件的模块,解决了不少我们平常需要处理压缩文件的需求 ,本文主要谈谈zipfile几个常用的用法。

 

首先我在windows操作系统中创建如下的文件目录:

python模块--zipfile文件压缩

 

一、读取压缩文件:

代码:

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

 

python模块--zipfile文件压缩

 

 

压缩文件的名称、压缩算法和大小等信息

<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模块搜索路径是无法找到的。

 

添加成功:

python模块--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()

 

解压成功:

python模块--zipfile文件压缩

 

参考文章:

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