我对红宝石很新。这是我的代码:
require 'csv'
csv = CSV.read('C:\Users\hp1\Desktop\Datasets\000.csv', :headers=>true)
p csv['timestamp']
f = File.new('C:\Users\hp1\Desktop\Datasets\Columns_000.csv', 'wb')
f.puts(p)
f.close
我想在这段代码中做的是,我想阅读000.csv文件,并将名为“timestamp”的列复制到另一个csv,Columns_000.csv。
但是会发生什么,它会在我的终端上写下timestamp列的值。相反,我希望它在新的csv上写下它们。
我还有2个像我想要复制到新csv的列。有没有办法将它们全部复制在一起,还是我需要逐个复制它们?
答案 0 :(得分:2)
COLUMNS = ['timestamp', 'other1', 'other2']
# open new csv for writing
CSV.open("C:\Users\hp1\Desktop\Datasets\000_out.csv", "wb") do |csv|
# iterating existing csv rows
CSV.foreach('C:\Users\hp1\Desktop\Datasets\000.csv', :headers=>true) do |row|
# select only those specified above columns
csv << COLUMNS.map { |col| row[col] }
end
end