Python处理zip压缩文件
文章目录
- ZipFile对象
- 写入压缩文件
- 读取和解压缩
- 常用属性
- ZipInfo
ZipFile对象
顾名思义,zipfile
是处理zip
文件的模块,其中最重要的类是ZipFile
,其构造函数为
ZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=True, compresslevel=None, *, strict_timestamps=True)
各参数含义如下
file
文件路径或者文件对象mode
文件打开模式,可以为r, w, a, x
,表示读、写、追加、新建写入。compression
压缩方案,可以是ZIP_STORED
,ZIP_DEFLATED
,ZIP_BZIP2
或ZIP_LZMA
allowZip64
为True
时,若文件大于4GiB,zipfile
将创建使用ZIP64
扩展的ZIP
文件;为False
则引发异常。compresslevel
为压缩等级,在ZIP_DEFLATED
时可选整数0-9
,在ZIP_BZIP2
时可选整数1-9
,其他压缩方案不可用。strict_timestamps
设为False
时允许压缩早于1980年以前活2108年之后的文件,但时间戳会设为1980-01-01或2107-12-31
。
写入压缩文件
下面对读写zip
数据做一个简单的示例
import zipfile, os
test = "if you miss the train i'm on" * 500
with zipfile.ZipFile('test.zip', 'w') as z:z.writestr("test.txt", test)
效果如下
其中,z.writestr("test.txt", test)
表示将test
写入test.txt
后,在存档到压缩文件z
中。
读取和解压缩
能写就能读,下面来演示一下Zipfile.read
的功能
z = zipfile.ZipFile('test.zip', 'r')
z.namelist() # 读取压缩文件中的文件列表
# ['test.txt']
z.read('test.txt') # 读取`test.txt`中的内容
# if you miss the train i'm onif you miss the train...
通过printdir
可以查看压缩文件中更加详细的文件信息。
>>> z.printdir()
File Name Modified Size
test.txt 2023-01-19 12:32:12 14000
一般来说,通过代码来读写压缩文件是程序员的事儿,程序员要做的往往是给用户提供一个按钮,按下这个按钮可以实现压缩和解压缩。在ZipFile
中,extract
和extract
可以便捷地将压缩包里面的文件解压到指定位置,下面代码将z
中所有的文件解压到test
文件夹中,如果test
文件夹不存在,则创建。
z.extractall('test')
常用属性
ZipFile
封装的属性和没有参数的常用方法如下
filename
ZIP 文件的名称debug
要使用的调试输出等级,可设0(默认无输出)到3(最多输出)comment
关联到ZIP文件的字节对象形式的说明close()
关闭归档文件,在退出程序之前必须调用,否则数据不会被写入。namelist()
返回按名称排序的归档成员列表infolist()
返回每个归档成员的 ZipInfo 对象printdir()
打印归档的目录表testzip()
读取归档中的所有文件并检查它们的 CRC 和文件头。 返回第一个已损坏文件的名称,在其他情况下则返回 None。
ZipInfo
通过ZipFile.getinfo(name)
返回的是一个ZipInfo对象,如果name
为空,则返回压缩包中所有文件的信息列表。ZipInfo
对象支持如下属性:
属性 | 说明 | 属性 | 说明 |
---|---|---|---|
filename | 文件名称 | compress_type | 压缩类型 |
date_time | 文件最后修改时间 | ||
comment | 文档说明 | extr | 扩展项数据 |
create_system | 创建该zip的系统 | ||
create_version | 创建时的PKZIP版本 | extract_version | 解压所需PKZIP版本 |
reserved | 预留字段,返回0 | ||
flag_bits | zip标志位 | CRC | 未压缩文件的CRC-32 |
volume | 文件头的卷标 | header_offset | 文件头偏移位。 |
internal_attr | 内部属性 | external_attr | 外部属性 |
compress_size | 压缩后大小 | file_size | 未压缩时大小 |
其中date_time
的返回值是一个6元组,内容为:年月日时分秒,例如
>>> info = z.infolist()[0]
>>> info.date_time
(2023, 1, 19, 12, 32, 12)
Python处理zip压缩文件相关推荐
- Python读写zip压缩文件
摘要: Python自带模块zipfile可以完成zip压缩文件的读写,而且使用非常方便,下面我们就来演示一下Python读写zip文件. Python读zip文件 下面的代码给出了用Python读取 ...
- Python读写zip压缩文件的方法
Python 内置的 zipfile 模块可以对文件(夹)进行ZIP格式的压缩和读取操作.要进行相关操作,首先需要实例化一个 ZipFile 对象.ZipFile 接受一个字符串格式压缩包名称作为它的 ...
- Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件、zip压缩文件
Python将Pandas中Dataframe数据保存为gzip/zip文件:gzip压缩文件.zip压缩文件 目录 Python将Pandas中Dataframe数据保存为gzip/zip文件:gz ...
- 暴力破解(一)——python脚本暴力破解 加密的zip压缩文件
简介: zip格式是常见的压缩文件格式,它支持压缩时设置解压密码:有两种加密方式:1传统加密方式和普通的加密方式.传统加密方式是一种比较简单的加密方式,现在一般很少有人使用,而且压缩时 系统默认选择的 ...
- Python处理各种压缩文件(bzip2,gzip,zip)
原文地址:Python处理各种压缩文件(bzip2,gzip,zip) Python中有一个gzip模块来处理gzip文件 读取gzip文件: 1 2 3 4 import gzip f = gzip ...
- python压缩文件操作_Python tar、zip压缩文件操作方法
python语言源码练习,tar.zip压缩文件操作方法参考示例. import os import threading, zipfile import tarfile class AsyncZip( ...
- [Python] 读取 rar/zip 压缩文件
一. 读取 rar 文件 Python 中 python-unrar 模块依赖于 UnRAR library, 所以需要先安装 UnRAR library 1. 安装 UnRAR library 在官 ...
- 用python的进行压缩文件
用python的进行压缩文件 对于zipfile的用法很多地方已经讲的很详细了,例如:http://www.cnblogs.com/zhengyuxin/articles/1956178.html 一 ...
- 用Python创建gzip压缩文件
用Python创建gzip压缩文件 准备把所有文章中的图片链接全部更改到二级域名上.因为数据量比较大,为了方便修改,先将数据库内容导出为数据库脚本文件(后缀名为.sql),直接批量替换后再通过phpM ...
最新文章
- P3398仓鼠(LCA)
- dubbo官方文档中文_Pandas中文官方文档:基础用法5
- Mysql安装 定期弹出黑框作用及关闭
- 银行家舍入VS四舍五入(下):.NET发现之旅(四)
- [css] 写一个动画,向上匀速移动100px,向下以1.5倍速度移动200px,一直反复循环
- 软件测试用例项目写作,通用测试用例写作方法
- 可应用于实际的14个NLP突破性研究成果(二)
- How to Install Snapd and Snap applications on CentOS 7
- 如何评价周志华深度森林模型
- 男人有钱还是没钱,只需要关注他这三点,就明白了
- Day02 目录和文件的管理(ADMIN02)
- 1.4多媒体计算机系统教案,1.4 多媒体计算机系统教案3
- 如何一小时登上微信头脑王者王者段位
- gbd调试的基本使用方法
- 为什么单片机只有可以整除8的特殊寄存器能够位寻址?
- 小程序前端view内容重叠问题
- 15分钟详解 Python 安全认证的那些事儿~
- php session header,php session header()重定向后丢失 - php
- 《数字图像处理原理与实践(MATLAB版)》一书之代码Part3
- BT3amp;spoonwep无线破解与Q3amp;spoonwep无线破解哪个容易