从标准input压缩到标准输出 – funzip,python

目标是从标准input读取压缩文件并解压缩到标准输出。

Funzip的作品,是我正在寻找的解决scheme,该zip包含一个单一的文件,不幸的是,当压缩文件大小大约是1GB或更大时,funzip失败:

funzip error: invalid compressed data--length error 

更新:我发现上面的错误可能不表示一个实际的错误。 比较两个未压缩的文件,一个传统解压缩,另一个通过使用funzip的pipe道(将上面的错误写入stderr)文件是相同的。 我想保持这个开放,所以这可以确认或报告。

一个相关的解决scheme使用python: 解压缩通过pipe道飞入的文件

但是,这个输出被定向到一个文件。

只需使用zcat 。 例如:

cat file.zip | zcat

请注意,在上面的例子中,第一部分( cat file.zip )是多余的,从这个意义上说,你可以简单地发出zcat file.zip并得到相同的结果。 我只是把它包括来显示zcat能够从stdin读取

解压(redirect到file ):

 cat file.gz | gunzip -c - > file 

压缩(redirect到file.gz )):

 cat file | gzip -c - > file.gz