У меня есть куча сжатых файлов (.gz), и я хочу объединить их в один.
Я знаю инструмент CL:
cat file1.gz file2.gz > file.gz
а также я нашел это решение в stackoverflow:
with open(..., 'wb') as wfp:
for fn in filenames:
with open(fn, 'rb') as rfp:
shutil.copyfileobj(rfp, wfp)
Однако есть ли другой способ сделать это с помощью Python, столь же эффективный, как cat?
zcat
команда создает единственный распакованный файл в качестве вывода. - person Charles Duffy   schedule 31.10.2019cat
их без декомпрессии или повторного сжатия; совместимый декодер gzip обрабатывает несколько объединенных сжатых потоков так же, как и один поток (так работает rsyncable gzip, сбрасывая таблицу сжатия, чтобы блоки не зависели от содержимого блоков ранее). - person Charles Duffy   schedule 31.10.2019zcat
, предложенный выше ). - person Charles Duffy   schedule 31.10.2019cat
работает намного быстрее, чем вы ожидаете, возможно, будет весело / интересно прочитать исходный текст. - person Charles Duffy   schedule 31.10.2019cat
их, не глядя, но это правдоподобно. А если это так, то вы можете начать с изучения того, написал ли кто-нибудь код Python для доступа к тем же возможностям. - person Charles Duffy   schedule 31.10.2019