Мне нужно выяснить, как записать вывод файла в сжатый файл на Python, как показано в двух строчках ниже:
open ZIPPED, "| gzip -c > zipped.gz";
print ZIPPED "Hello world\n";
В Perl это использует Unix gzip для сжатия всего, что вы печатаете, в дескриптор файла ZIPPED в файл "zipped.gz".
Я знаю, как использовать «import gzip», чтобы сделать это в Python следующим образом:
import gzip
zipped = gzip.open("zipped.gz", 'wb')
zipped.write("Hello world\n")
Однако это очень медленно. Согласно профилировщику, использование этого метода занимает 90% моего времени выполнения, поскольку я записываю 200 ГБ несжатых данных в различные выходные файлы. Я знаю, что файловая система может быть частью проблемы здесь, но я хочу исключить ее, используя вместо этого сжатие Unix / Linux. Это отчасти потому, что я слышал, что распаковка с использованием этого же модуля также медленная.