跳转到主要内容

相对于标准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-py2.py3-none-any.whl (6.5 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者