从 ruby 中的 gzip 中提取多个文件
Extract multiple files from gzip in ruby
实际上我在一个 .gz 文件中有多个 .txt 文件。我想从 .gz 文件中提取所有 .txt 文件...例如:
gz_extract = Zlib::GzipReader.open("sample.gz")
gz_extract.each do |extract|
print extract
end
上面的代码实际上打印了 .gz 文件中存在的任何内容,但实际上我想解压缩 .txt 文件。我希望你能理解这个问题....
Actually i have a multiple .txt files in a .gz file. I would like to extract all the .txt files from .gz file.
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
实际上我在一个 .gz 文件中有多个 .txt 文件。我想从 .gz 文件中提取所有 .txt 文件...例如:
gz_extract = Zlib::GzipReader.open("sample.gz")
gz_extract.each do |extract|
print extract
end
上面的代码实际上打印了 .gz 文件中存在的任何内容,但实际上我想解压缩 .txt 文件。我希望你能理解这个问题....
Actually i have a multiple .txt files in a .gz file. I would like to extract all the .txt files from .gz file.
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