当前位置: 首页 > news >正文

Python--我一般都用这个模块压缩文件

打包成压缩文件很多时候都能用上,也包括了自动化中的部分应用。例如,将测试报告打包发送。

本章就来介绍其中一个模块,可以用于结合上一章的内容结合使用。

from zipfile import ZipFile

ZipFile是zipfile的一个方法。

提取zip文件

from zipfile import ZipFilefile = r'three_\notes\zips.zip'
with ZipFile(file,'r') as zip:zip.printdir()print("~" * 30)zip.extractall()print("over")

需要提前准备一个.zip压缩文件。最好不要带中文,可能会文件名造成乱码。

File Name                                             Modified             Size
zips/headset.png                               2022-12-03 10:34:14         7532
zips/mouse.png                                 2022-12-03 10:34:14         5439
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
over

**printdir()**方法打印存档的目录。
**extractall()**方法会将zip文件的所有内容提取到当前工作目录中。
**extract()**方法来提取任何文件,方法是在 zip 文件中指定其路径。
zip.extract('zips/headset.png')
如果你想读取一些特定的文件,你可以这样:
data = zip.read(name_of_file_to_read)

写入zip文件

from zipfile import ZipFile
import osdef get_all_file_paths(directory):# 将文件写入列表file_paths = []# 获取指定路径的文件for root, directories, files in os.walk(directory):for filename in files:print(root,files)# 路径拼接filepath = os.path.join(root, filename)file_paths.append(filepath)# 返回所有路径return file_paths        def main():# 需要压缩的路径directory = r'three_\notes\zips'# 传入遍历路径file_paths = get_all_file_paths(directory)# 打印压缩路径的内容print('Following files will be zipped:')for file_name in file_paths:print(file_name)# 写入压缩文件with ZipFile('my_python_files.zip','w') as zip:# 写入每一个文件for file in file_paths:zip.write(file)print('All files zipped successfully!')        if __name__ == "__main__":main()

获取zip文件信息

from zipfile import ZipFile
import datetime# 路径
file_name = r"three_\notes\zips.zip"# 打开并读取其中的内容信息
with ZipFile(file_name, 'r') as zip:for info in zip.infolist():print(info.filename)print('\tModified:\t' + str(datetime.datetime(*info.date_time)))print('\tSystem:\t\t' + str(info.create_system) + '(0 = Windows, 3 = Unix)')print('\tZIP version:\t' + str(info.create_version))print('\tCompressed:\t' + str(info.compress_size) + ' bytes')print('\tUncompressed:\t' + str(info.file_size) + ' bytes')

以上就是该模块的大致用法,当然也有很多类似的模块,只要好用都可以。

http://www.lryc.cn/news/70378.html

相关文章:

  • Chapter8 :Physical Constraints(ug903)
  • 星标3.5k,一款国产的轻量级开源在线项目任务管理工具
  • 【华为OD机试真题2023B卷 JAVA】字符串摘要
  • Java线程概述 (一)线程介绍
  • 操作系统第三章——存储系统(下)
  • 初识结构体
  • 协程并发下数据汇总:除了互斥锁,还有其他方式吗?
  • 5、Ray-Actor模型和并发编程
  • HNU-电路与电子学-小班2
  • 二分图匹配算法
  • 虹科技术 | 虹科EtherCAT增量编码器输入模块数据采集实操测试
  • 2023.05.21 学习周报
  • 资深程序员深度体验ChatGPT一周发现竟然....
  • 带你深入了解Android Handler的用法
  • 生于零售的亚马逊云科技,如何加速中国跨境电商企业出海?
  • 兄弟组件传值$on无法接收值
  • Spring事务及事务传播机制
  • npm i 常见问题
  • Prometheus+Grafana监控系统
  • 基于脉冲神经网络的物体检测
  • Rust每日一练(Leetday0010) 子串下标、两数相除、串联子串
  • As ccess 数据库与表的操作
  • 自动化的测试工具
  • Host头攻击
  • Android 12.0默认开启无障碍服务权限和打开默认apk无障碍服务
  • 怎么成为优秀的软件工程师,而不是优秀的码农?
  • 安装ElasticSearch之前的准备工作jdk的安装
  • 复杂数据集,召回、精度等突破方法记录【以电科院过检识别模型为参考】
  • 那些你不得不会的提高工作效率的软件神器
  • 【VMware】Ubunt 20.04时间设置