Zipfile
文章目录
参考
创建 zip 文件
demo
| |
遍历 zip 文件
使用 ZipFile.infolist()
使用 ZipFile.namelist()
| |
使用 ZipFile.filelist 属性
| |
使用 zipfile.Path 类 (类似 pathlib.Path)
| |
递归遍历:
| |
使用例子:
| |
zipfile.Path
创建:
- 通过 .zip 文件:
Path("/path/to/demo.zip", "a/b.txt") - 通过 zipfile.ZipFile 创建:
Path(zipfile.ZipFie("/path//to/demo.zip"))
功能:
- 遍历文件:
Path.iterdir() - 获取 pathlib.Path 路径对象:
Path.filename属性 获取在 zip 文件中的保存路径,利用
zipfile.Path.filename实现:1 2 3 4 5 6 7 8In [13]: p Out[13]: Path('/mnt/e/Downloads/hello.zip', 'folder/age.txt') In [14]: p.filename Out[14]: PosixPath('/mnt/e/Downloads/hello.zip/folder/age.txt') In [15]: p.filename.relative_to(p.root.filename) Out[15]: PosixPath('folder/age.txt')路径拼接:
Path.joinpath()- 支持:
zipfile.Path.joinpath(pathlib.Path) - 支持:
zipfile.Path.joinpath(str_filepath)
- 支持:
zipfile.ZipInfo
创建方法:
ZipFile.getinfo(name)
- 已有的 .zip 文件读取时使用
ZipInfo.from_file(file_to_save, filename_in_archieve)
- 创建一个新的 .zip 文件时使用
- ZipInfo(archive_name, date_time=…)
使用 zipfile.Path 获取
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16import zipfile from pathlib import Path zfile_path = "/path/to/my.zip" with zipfile.ZipFile() as sub_zfile: for file in zipfile.Path(zfile_path).iterdir(): file_arc_path = ( Path(Path(name).stem) .joinpath(file.filename.relative_to(file.root.filename)) .as_posix() ) file_zinfo = sub_zfile.getinfo( file.filename.relative_to(file.root.filename).as_posix() ) print(file_zinfo)
用途:
读取压缩文件的更多信息
- 时间
- 大小
- 压缩大小
- …
- 创建.zip 时,创建和自定义压缩文件的信息
文章作者
上次更新 2024-07-16 (7f33ae8)