Ruby-CSV合并字段值

Ruby-CSV合并字段值,ruby,csv,Ruby,Csv,这个周末我开始学习Ruby。我正在编写一个脚本,它将读取一个包含日期字段和时间字段的CSV文件,并将值合并到写入输出的新DateTime字段中 我有的只是部分工作,但问题是日期和时间值是逗号分隔的。我想删除逗号并用空格替换它。如何删除逗号并将值合并在一起 require 'csv' CSV.open("output.csv", "wb", :headers => true) do |output| CSV.foreach("input.csv", :headers => tru

这个周末我开始学习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”
open(“output.CSV”、“wb”,:headers=>true)do | output|
foreach(“input.CSV”,:headers=>true,:return_headers=>true)do |行|
如果是row.header\u行?

输出您可以使用
tr
替换字符串中的内容

date = row['Date']
time = row['Time']

datetime = "#{date} #{time}".tr(',', ' ')

类似这样的事情应该会有所帮助:

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
需要“csv”
open(“output.CSV”、“wb”,:headers=>true)do | output|
输出true,:return_headers=>true,:header_converters=>:symbol)do |行|
output true
将标题字段名称转换为符号,这可以显著提高中等长度CSV文件的性能
  • 将标题输出移到输入CSV循环之外,因为可以在任何行数据之前安全地写入标题
  • 行[:日期]
    行[:时间]
  • 将行数据写入一个数组(一个元素),由包含
    行[:date]
    行[:time]

  • 您能否向我们展示CSV标题和CSV中的第一行记录。我不认为该文件应以“wb”模式打开b'表示二进制,您正在创建一个文本文件,而不是二进制文件。这在Unix上可能没有什么不同,但它不可移植,通常是不好的做法,因为它对读者说“这将是一个二进制文件”。@JohnnySemicolon如果这回答了您的问题,请单击答案旁边的复选标记接受它。复选标记将变为绿色。此外,投票也总是值得赞赏的D