在Ruby中将TSV转换为CSV

3
在Ruby中,将一个制表符分隔的值文件转换为CSV格式,最高效的方法是什么?
1个回答

4
使用FasterCSV进行操作。
require 'rubygems'
require 'fastercsv'

FasterCSV.open("path/to/file.csv", "w") do |csv|
  File.open("/path/to/file.tsv") do |f|
    f.each_line do |tsv|
      tsv.chomp!
      csv << tsv.split(/\t/)
    end
  end
end

你难道不应该正确解析 TSV 吗?"foo\tbar"\t"baz" - deceze
2
@Bill FasterCSV在Ruby 1.9中取代了以前的CSV模块,因此在1.9中,您需要require 'csv',然后再仔细检查它是否正常工作。不过,OP没有提到他们使用的是哪个版本。 - Paul Hoffer
1
@deceze -- 我从未听说过允许“转义”嵌入式制表符的TSV格式--只需在制表符上拆分即可。 - Bill Dueber
1
“Foo,Bar”,“Baz”是完全有效的CSV格式,为什么TSV不允许在数据字段中使用制表符呢? - deceze
2
请注意,包含制表符的字段在此编码中不允许。请参阅TSV的(非常)简短规范:http://www.iana.org/assignments/media-types/text/tab-separated-values - MPV
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接