相对于标准zipfile包的改进
项目描述
包ruamel.std.zipfile是在标准zipfile包上的改进
您只需替换
import zipfile
为
import ruamel.std.zipfile as zipfile
该包包括InMemoryZipFile,允许在内存中轻松创建ZIP文件,并在完全创建后允许流式传输或写入磁盘
with InMemoryZipFile() as imz: imz.append("test.txt", "Another test").append("test2.txt", "Still another") with open('some_file.zip', 'wb') as fp: fp.write(imz.data)
这将写入一个包含两个文件的ZIP文件,第一个文件的名称为test.txt,内容为Another test。.data内容也可以动态返回到Web浏览器等。
从ZIP中删除文件
利用InMemoryZipFile的延迟写入,函数delete_from_zip_file(file_name, pattern, file_names)接受一个字符串或pathlib.Path作为文件名。
如果提供,则删除与模式匹配的任何文件,以及与file_names(字符串/Path的列表)匹配的任何文件(允许单个非列表实例)。
以下示例从ZIP文件test.zip中删除以.pth结尾的任何文件以及文件tmp/README.rst
delete_from_zip_file('test.zip', pattern='.*.pth', file_names=['README.rst'])
或
delete_from_zip_file('test.zip', pattern='.*.pth', file_names='README.rst')
或
delete_from_zip_file('test.zip', pattern=re.compile('.*.pth'), file_names='README.rst')
请注意,这是一个“re”模式,而不是“glob”模式。您可以提供,但不必提供用re.compile()编译的模式。
ZIP文件将被重新创建和重新压缩,删除文件时请考虑这一点(限制您处理的文件大小,合并模式而不是进行多次调用)。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
ruamel.std.zipfile-0.1.0.tar.gz (11.3 kB 查看哈希值)
构建分发
关闭
ruamel.std.zipfile-0.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d7cc5ffdb24897670305d616ff2d864dbfc00c55b9b37dec2d08d046c76d1a30 |
|
MD5 | cf7153801cfd1211e3fb68c73f684b94 |
|
BLAKE2b-256 | bdadf954e535b2ae686277be56a3164c4eb55743c469ad81750b0769a5718bb1 |
关闭
ruamel.std.zipfile-0.1.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 797e000fef6da0f25005d9c666ca8564ec70b8bf8521ddf51ff4cca8c8b35b36 |
|
MD5 | 2e11b9a44d9ae4783bc8837b76686e6d |
|
BLAKE2b-256 | 27167ed3633177023d6d186b9731128fa320d739f29defe47371db00ee1c75f9 |