【发布时间】:2016-09-19 21:50:03
【问题描述】:
我这个周末开始学习 Ruby。我正在编写一个脚本,该脚本将读取具有日期字段和时间字段的 CSV 文件,并将值合并到写入输出的新 DateTime 字段中。
我有部分工作,但我遇到的问题是日期和时间值是逗号分隔的。我想删除逗号并用空格替换它。如何删除逗号并将值合并在一起?
require 'csv'
CSV.open("output.csv", "wb", :headers => true) do |output|
CSV.foreach("input.csv", :headers => true, :return_headers => true) do |row|
if row.header_row?
output << (row << 'DateTime')
else
output << (row << row['Date'].to_s << (row['Time'].to_s))
end
end
end
【问题讨论】:
-
你能给我们看一下 CSV 标题和 CSV 中记录的第一行吗?
-
我不应该以'wb'模式打开文件。 'b' 表示二进制,您正在创建一个文本文件,而不是二进制文件。这在 Unix 上可能没有什么不同,但它不是可移植的,而且通常是不好的做法,因为它对读者说“这将是一个二进制文件”。