写入和读取TAB分隔的CSV文件

时间:2017-09-11 17:53:54

标签: ruby

目的:以易于阅读的格式存储和操作有关工作提示的数据。因此,制表符分隔如下:

2017-07-27  THU 16:00-22:00 21.00

我想使用CSV.read方法将信息存储在一个数组数组中,并且可以操作它,但是我无法想出一个很好的方法来将该数组写回一个TAB分隔文件。

如何以该格式化将数组数组写入txt文件?

tips = CSV.read("tips.txt",:col_sep => "\t")
CSV.open("tipsoutput.csv","w") do |csv|
csv << tips
end

给出如下输出:

"[""2017-07-27"", ""THU"", ""16:00-22:00"", ""21.00""]",

1 个答案:

答案 0 :(得分:1)

CSV::open实际上可以带3个参数,第三个是csv选项(read也一样),所以你可以这样做:

CSV.open("tipsoutput.csv", "w", col_sep: "\t") do |csv|
  csv << ["2017-07-27", "THU", "16:00-22:00", "21.00"]
end

生成文件:

2017-07-27  THU 16:00-22:00 21.00
但是,你需要遍历数组,因为我不知道任何可以让你一次写多个数组(行)的东西,所以像这样:

CSV.open("tipsoutput.csv", "w", col_sep: "\t") do |csv|
  tips.each { |tip| csv << tip }
end