您如何(逐行)读取 Python 中压缩文件夹内的多个 .gz 文件而不创建临时文件?

How do you (line by line) read multiple .gz files that are inside a zipped folder in Python without creating temporary files?

假设您有一个包含许多 .gz 文件的压缩文件夹(实际内容只是压缩的 CSV)。如何在不先解压到临时文件夹或文件的情况下直接逐行阅读它们?一旦加载到 Python 中,它们的存储方式并不重要,我想自然而然地,它只是字符串列表,每行一个字符串,但这并不重要。

你可以这样做

from zipfile import ZipFile
import gzip

with ZipFile("storage.zip") as zf:
     files =  zf.namelist()
     for file in files:
         with zf.open(file) as f:
             with gzip.open(f, 'rt') as g:
                 for line in g.readlines():
                     print(line)