如何在python中的特定目录中读取多个.gz文件而不解压缩它们

时间:2018-11-20 10:36:47

标签: python zip unzip

我的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')

有人可以建议我这样做吗??

1 个答案:

答案 0 :(得分:0)

使用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)