如何有效地遍历7z归档文件,读取所有文件而不提取文件?

2024-10-03 06:24:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含大量JSON的7z存档。迭代归档并读取每个JSON的最有效(=最快)方法是什么

我的目标是从归档文件中的每个JSON中提取某个密钥,最好不要提取未压缩的文件并将其保存到磁盘。结果应该是一个酸洗的数据帧


This问题可能通过使用py7zr指向正确的方向。我找到了readall()方法,但似乎出了问题

import py7zr
import re
from py7zr import FILTER_BROTLI

filters = [{'id': FILTER_BROTLI, 'level': 9}]

with py7zr.SevenZipFile('testzip.7z', 'r', filters=filters) as zip:
    for fname, bio in zip.readall().items():
        print('{:s}: {:X}...'.format(name, bio.read(10)))

只返回

UnsupportedCompressionMethodError: Unauthorized and modified Brotli data (skipable frame) found.

看起来Brotli有些问题。有什么线索吗


Tags: 文件方法importjson目标密钥zipfilter