gpt4 book ai didi

ruby - 使用 LZMA 即时压缩到文件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:27 24 4
gpt4 key购买 nike

此代码使用 Bzip2 写入 csv 文件压缩即时数据。

File.open('file.bz2', 'wb') do |f|
writer = Bzip2::Writer.new f
CSV(writer) do |csv|
(2**16).times { csv << arr }
end
writer.close
end

我想使用 lzma 算法和 ruby-lzma 做同样的事情gem 可能很有用,但这个 gem 只有一种方法 compressed = LZMA.compress('data to compress')

问题:

有没有办法使用 lzma 进行类似的压缩?

最佳答案

使用ruby-xz它有一个更好的 liblzma 接口(interface)(使用 FFI)。

该库有 XZ::StreamWriter 类。检查docs对于 ruby​​-xz

然而,CSV 构造函数不采用 XZ::StreamWriter,因此您需要更改代码以使用 CSV.generate_line。我能够运行它,它会即时生成文件

require 'xz'
require 'csv'

arr = ['one', 'two', 'three']

File.open('file.xz', 'wb') do |f|
XZ::StreamWriter.new(f) do |writer|
(2**16).times { writer << CSV.generate_line(arr) }
writer.finish
end
end

关于ruby - 使用 LZMA 即时压缩到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23551387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com