ruby - 我需要将一个巨大的 csv 文件中的 3 列复制到一个新的 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 文件,并将名为“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/

相关文章:

ruby-on-rails - Rails 迁移创建带有基于字符串的主键的表

ruby-on-rails - How to express有时在rails中有一种关系

python - 在 Python 中根据 CSV 的标准映射出现次数

php - 将列名称导出到 CSV

ruby-on-rails - 如何将回形针与服务器上已有的文件一起使用?

ruby-on-rails - Ruport - `each' :String 的未定义方法 ""

c# - CsvReader 错误 : Header matching ['ID' ] names at index 0 was not found

regex - 从 CSV 中用逗号分隔文本?

r - 将数据帧写入磁盘时 write.csv 会弄乱 header 名称

csv - 将 Hive 查询结果输出为 csv 并用引号括起来