Как прочитать несколько файлов .gz в определенном каталоге в Python, не разархивируя их - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть папка / var / tmp в моей директории linux, в которой у меня есть несколько файлов .gz в указанном ниже формате (name_yyyymmddhhmmss.gz).

aakashdeep_20181120080005.gz aakashdeep_20181120080025.gz kalpana_20182010000810008000gz

Теперь я хочу открыть все файлы gz в формате name_20181120 * .gz, не разархивируя их, и прочитать содержимое из них.

Я написал простой код

! / Usr / bin / python

import gzip

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

для строки в выводе: print (line)

, и то же самое дает мне вывод, как и ожидалось, но я хочу открыть все файлы, как показано ниже: output = gzip.open ('/ var / tmp /Aakashdeep / aakashdeep_20181120 * .gz ',' r ')

Может кто-нибудь предложить мне путь для этого .??

1 Ответ

0 голосов
/ 20 ноября 2018

Используйте 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)
...