Мне нужно выяснить, как записать вывод файла в сжатый файл на 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. Частично это связано с тем, что я слышал, что распаковка с использованием этого же модуля также выполняется медленно.