我刚试过
require 'csv'
#Create LEDES98
CSV.open('output.txt', 'w', col_sep: '|', row_sep: '[]') do |csv|
csv << [1,2,3]
csv << [4,5,6]
end
我得到了
1|2|3[]4|5|6[]
您使用哪个 csv/ruby 版本?我CSV::VERSION
的是 2.4.7,我的 ruby 版本是1.9.2p290 (2011-07-09) [i386-mingw32]。
另一句话:如果我查看http://www.ledes.org/中的示例文件,那么您需要额外的换行符。我建议使用:
require 'csv'
#Create LEDES98
CSV.open('output.txt', 'w', col_sep: '|', row_sep: "[]\n") do |csv|
csv << [1,2,3,nil]
csv << [4,5,6,nil]
end
结果:
1|2|3|[]
4|5|6|[]
额外的 nil 为您提供|
[] 之前的最后一个。
我在另一台使用 ruby 1.9.3p194 (2012-04-20) [i386-mingw32] 的计算机上进行了测试,得到了同样的错误。
我研究了一下,可以隔离问题:
p "[]" #[]
p "\[\]" #[] <--- Problem
p "\\[\\]" #\\[\\]
你不能屏蔽[
. 如果你屏蔽一次,Ruby 会生成[
(没有屏蔽符号)。如果你屏蔽它两次,你只屏蔽\,而不是]。