如何在不解压缩的情况下读取 python 中特定目录中的多个 .gz 文件

how to read multiple .gz files in a particular directory in python without unzipping them

我的 linux 目录中有一个文件夹 /var/tmp,其中有多个 .gz 文件,格式如下 (name_yyyymmddhhmmss.gz)。

aakashdeep_20181120080005.gz aakashdeep_20181120080025.gz kalpana_20181119080005.gz aakashdeep_20181120080025.gz

现在我想打开所有格式为 name_20181120*.gz 的 gz 文件而不解压缩它们并读取其中的内容。

我写了一个简单的代码

!/usr/bin/python

导入 gzip

输出=gzip.open('/var/tmp/Aakashdeep/aakashdeep_20181120080002.gz','r')

对于输出中的行: 打印(行)

同样是给我预期的输出,但我想打开所有文件,如下所示 输出 = gzip.open('/var/tmp/Aakashdeep/aakashdeep_20181120*.gz','r')

任何人都可以为我推荐这个方法吗??

使用 glob.glob 获取要处理的文件列表,然后使用 gzip.open 打开每个文件,对其内容执行一些操作,然后继续下一个。大纲(未经测试):

import glob
import gzip

ZIPFILES='/var/tmp/Aakashdeep/aakashdeep_20181120*.gz'

filelist = glob.glob(ZIPFILES)
for gzfile in filelist:
    # print("#Starting " + gzfile)  #if you want to know which file is being processed  
    with gzip.open( gzfile, 'r') as f:
        for line in f:
             print(line)