Python equivalente à saída do arquivo de canalização para gzip no Perl usando um pipe
Preciso descobrir como gravar a saída do arquivo em um arquivo compactado no Python, semelhante ao de duas linhas abaixo:
open ZIPPED, "| gzip -c > zipped.gz";
print ZIPPED "Hello world\n";
No Perl, isso usa o Unix gzip para compactar o que você imprime no arquivo ZIPPED para o arquivo "zipped.gz"
Eu sei como usar "import gzip" para fazer isso no Python assim:
import gzip
zipped = gzip.open("zipped.gz", 'wb')
zipped.write("Hello world\n")
No entanto, isso é extremamente lento. De acordo com o criador de perfil, o uso desse método ocupa 90% do meu tempo de execução, pois estou gravando 200 GB de dados não compactados em vários arquivos de saída. Estou ciente de que o sistema de arquivos pode fazer parte do problema aqui, mas quero descartá-lo usando a compactação Unix / Linux. Isso ocorre parcialmente porque ouvi dizer que a descompactação usando esse mesmo módulo também é lent