我对 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 文件,并将名为“timestamp”的列复制到另一个 csv Columns_000.csv 中。
但是发生的情况是,它在我的终端上写入了时间戳列的值。相反,我希望它将它们写在新的 csv 上。
我还有另外 2 列,我想将其复制到新的 csv 中。有没有办法将它们全部复制在一起,或者我需要将它们逐一复制?
最佳答案
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
关于ruby - 我需要将一个巨大的 csv 文件中的 3 列复制到一个新的 csv 文件中。怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32421621/