Ruby 我需要复制3列从一个巨大的csv文件到一个新的csv文件。怎么做?
我对ruby很陌生。这是我的代码:Ruby 我需要复制3列从一个巨大的csv文件到一个新的csv文件。怎么做?,ruby,csv,export-to-csv,Ruby,Csv,Export To Csv,我对ruby很陌生。这是我的代码: 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文件,并
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
但实际情况是,它将时间戳列的值写入我的终端。相反,我希望它将它们写在新的csv上
我还有两个类似的列,我想复制到新的csv。是否有一种方法可以将它们全部复制到一起,或者我需要一个一个地复制它们?COLUMNS=['timestamp','other1','other2']
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
#打开新的csv进行写入
CSV.open(“C:\Users\hp1\Desktop\Datasets\000_out.CSV”,“wb”)do|CSV|
#迭代现有csv行
CSV.foreach('C:\Users\hp1\Desktop\Datasets\000.CSV',:headers=>true)do |行|
#仅选择以上列中指定的内容
哇!谢谢!它起作用了!但是你能帮我理解吗?比如,什么是“有一位伟大的老师随时准备帮助你理解任何代码;她的名字是Ruby documentation:;。顺便说一句。哈哈。是的,我问过很多次,你知道。但她解释得不好。例如,她提到,“#在这里使用row…”。。。"; 但她没有说,这一行在这里究竟应该如何使用。无论如何,非常感谢:)