实际上我在.gz文件中有多个.txt文件。我想从.gz文件中提取所有.txt文件...例如:
gz_extract = Zlib::GzipReader.open("sample.gz")
gz_extract.each do |extract|
print extract
end
上面的代码实际上打印了.gz文件中存在的内容,但实际上我想取消gzip .txt文件。我希望你能理解这个问题......
答案 0 :(得分:2)
实际上我在.gz文件中有多个.txt文件。我想从.gz文件中提取所有.txt文件。
gzip不能同时包含多个文件。它只适用于一个文件。
如果要压缩多个文件,首先需要将它们一起tar,然后gzip生成的.tar文件,这与您正在使用的文件不一致。
如果您可以使用您提供的代码阅读sample.gz的内容,这进一步证明您内部只有一个文件。您也可以从命令行尝试gunzip sample.gz
再次证明它只包含一个文件。
修改强>
如果您希望代码输出未压缩的.txt文件:
output_file = File.open('sample.txt', 'w')
gz_extract = Zlib::GzipReader.open("sample.gz")
gz_extract.each_line do |extract|
output_file.write(extract)
end
output_file.close