如何编写TSV文件scraper,其中“if line contains x,then save”?

时间:2013-09-10 13:34:19

标签: ruby parsing csv tsv data-extraction

我想打开一个TSV(制表符分隔值)文件,并将特定行保存到新的CSV(逗号分隔值)文件中。

如果该行在标题为“Actor1Code”的字段中包含'NLD',我想将该行保存为CSV;如果没有,我想迭代到下一行。这是我到目前为止所做的,但显然这还不够:

require 'csv'

CSV.open("path/to.csv", "wb") do |csv| #csv to save to
  CSV.open('data.txt', 'r', '\t').each do |row| #csv to scrape
    if row['Actor1Code'] == 'NLD'
      csv << row
    else
    end
  end
end

1 个答案:

答案 0 :(得分:3)

您确定要正确拨打CSV.open吗? The documentation似乎建议将参数作为哈希传递:

CSV.open('data.txt', 'r', col_sep: "\t")

您看到的错误可能是'\t'被解释为哈希并被[]引用的结果。