Я хочу открыть файл TSV (значения, разделенные табуляцией) и сохранить определенные строки в новый файл CSV (значения, разделенные запятыми).
Если строка содержит 'NLD'
в поле с заголовком «Actor1Code», я хочу сохранить строку в 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
"\t"
, двойные кавычки. - person nicooga   schedule 10.09.2013in 'initialize': can't convert String into Integer (TypeError) from /usr/lib/ruby/1.9.1/csv.rb:1342:in 'open' from /usr/lib/ruby/1.9.1/csv.rb:1342:in 'open' from code/csv_code/csv_protestscraper_c.rb:5:in 'block in <main>' from /usr/lib/ruby/1.9.1/csv.rb:1354:in 'open' from code/csv_code/csv_protestscraper_c.rb:3:in '<main>
- person Seeb   schedule 10.09.2013CSV
ничего не знает о заголовках, если не добавляет код или опции для управления ими. Вероятно, это то, с чем вам нужна помощь. Ошибка жалуется на использованиеString
для доступа к элементу в строкеArray
. Если бы вы добавили к вопросу упрощенный (2-3 столбца, 2-3 строки) образец из вашего файла, вам было бы легче помочь. - person Neil Slater   schedule 10.09.2013