本周末我开始学习Ruby。我正在编写一个脚本,该脚本将读取具有Date字段和Time字段的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
答案 0 :(得分:0)
您可以使用tr
替换字符串中的内容。
date = row['Date']
time = row['Time']
datetime = "#{date} #{time}".tr(',', ' ')
答案 1 :(得分:0)
这样的事情应该会有所帮助:
require 'csv'
CSV.open("output.csv", "wb", :headers => true) do |output|
output << 'DateTime'
CSV.foreach("input.csv", :headers => true, :return_headers => true, :header_converters => :symbolize) do |row|
output << ["#{row[:date] row[:time]}"]
end
end
此处的更改代表此功能:
:return_headers => true
将标题字段名称转换为符号,这可以显着提高即使是中等长度的CSV文件的性能row[:date]
和row[:time]
row[:date]
和row[:time]