Эквивалент Python для вывода файла трубопровода в gzip в Perl с использованием канала

Мне нужно выяснить, как записать вывод файла в сжатый файл на Python, как показано в двух строчках ниже:

open ZIPPED, "| gzip -c > zipped.gz";
print ZIPPED "Hello world\n";

В Perl это использует Unix gzip для сжатия всего, что вы печатаете, в дескриптор файла ZIPPED в файл "zipped.gz".

Я знаю, как использовать «импорт gzip», чтобы сделать это в Python следующим образом:

import gzip
zipped = gzip.open("zipped.gz", 'wb')
zipped.write("Hello world\n")

Однако это очень медленно. Согласно профилировщику, использование этого метода занимает 90% моего времени выполнения, поскольку я записываю 200 ГБ несжатых данных в различные выходные файлы. Я знаю, что файловая система может быть частью проблемы здесь, но я хочу исключить ее, используя вместо этого сжатие Unix / Linux. Это отчасти потому, что я слышал, что распаковка с использованием этого же модуля также медленная.