python压缩教程_Python压缩模块zipfile实现原理及用法解析

一、python压缩模块简介

python直接通过内置压缩模块可以直接进行压缩文件的创建;

内置模块 zipfile/rarfile 完成压缩文件的操作。

二、 zipfile模块基础使用

2.1 对一个文件进行zip压缩

# 把当前目录的test.txt文件压缩到a.zip压缩包中

import zipfile

f = zipfile.ZipFile("a.zip", "w", zipfile.ZIP_DEFLATED)

f.write("test.txt")

f.close()

上述代码中:

a.zip是压缩后要保存的文件名

w 表示写入压缩文件的含义

ZIP_DEFLATED表示压缩;ZIP_STORE表示只打包,不压缩(类似Linux中的gz跟tar格式)

write方法:目前填写的参数 test.txt 为当前目录下的文件,它表示要压缩的文件。

2.2 对一个zip压缩文件进行解压缩

# 把当前目录的a.zip压缩包中的test.txt进行解压

import zipfile

f = zipfile.ZipFile("a.zip","r")

f.extract("test.txt")

上述代码中:

a.zip 是当前目前下的压缩包文件,该压缩包目前只压缩了一个 test.txt 文件

extract() 方法的作用就用来进行解压缩,参数填写的是 a.zip 压缩包中必须包含的文件名信息

如果我不知道压缩包中包含了什么文件信息,那就比较麻烦。可以用namelist()方法解决,如下2.3

2.3 对一个zip压缩文件中的所有文件进行解压缩

import zipfile

f = zipfile.ZipFile("a.zip","r")

for file in f.namelist():

f.extract(file,"./temp")

上述代码中:

namelist()方法返回压缩包中包含的所有文件信息,返回值为 list 类型

通过循环的方式把所有都进行解压到 当前目录下的temp目录

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。

原文链接:https://www.cnblogs.com/dream66/p/12873927.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,可以使用zipfile模块来进行分卷压缩。首先,你可以使用该模块创建一个ZipFile对象,来表示你要创建的压缩文件。然后,你可以使用write()方法来将文件添加到压缩文件中。如果你想要实现分卷压缩,你可以在添加文件之前使用set_compression()方法来设置压缩级别和分卷大小。接下来,你可以使用write()方法逐个添加文件,并且当达到分卷大小时,自动创建下一个分卷文件。下面是一个示例代码来演示如何进行分卷压缩: ```python import zipfile # 设置分卷大小为10MB volume_size = 10 * 1024 * 1024 def split_compress(source_file, zip_filename): # 创建ZipFile对象 zip_file = zipfile.ZipFile(zip_filename, mode='w', compression=zipfile.ZIP_DEFLATED) with open(source_file, 'rb') as file: file_size = len(file.read()) # 计算分卷数量 num_volumes = (file_size + volume_size - 1) // volume_size with open(source_file, 'rb') as file: for i in range(num_volumes): volume_filename = f"{zip_filename}.{i+1:03d}" with open(volume_filename, 'wb') as volume_file: # 写入一个分卷大小的数据 volume_file.write(file.read(volume_size)) # 将分卷文件添加到压缩文件中 zip_file.write(volume_filename) # 关闭压缩文件 zip_file.close() # 示例用法 split_compress("test.zip", "test.zip") ``` 在这个示例中,我们首先设置了一个分卷大小为10MB。然后,使用split_compress()函数将名为"test.zip"的文件进行分卷压缩,并将结果保存为"test.zip"。这段代码会自动将"test.zip"分成多个分卷文件,每个分卷文件的大小不超过10MB,并且将所有分卷文件添加到一个压缩文件中。 请注意,这只是一个简单的示例代码,你可以根据自己的需求进行修改和扩展。同时,分卷压缩的实现也可以因操作系统和文件系统的不同而有所差异,所以建议在使用时仔细测试和验证。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [Python实现分卷压缩](https://blog.csdn.net/qq_37865996/article/details/125093364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python3实现zip分卷压缩过程解析](https://download.csdn.net/download/weixin_38723461/13784207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值