Rails - способ проверить последнюю строку при использовании гема smarter_csv - PullRequest
0 голосов
/ 03 августа 2020

Я использую gem smarter_csv для анализа большого CSV-файла на Heroku .

SmarterCSV.process(file_name, { chunk_size: 10, headers_in_file: false, user_provided_headers: user_provided_headers }) do |chunk|
  chunk.each do |row|
    # parse row
  end
end

Есть ли способ проверить, является ли строка последней строка?

1 Ответ

0 голосов
/ 03 августа 2020

SmarterCSV, похоже, не имеет для этого никакой утилиты, поэтому я думаю, что единственный способ - подсчитать количество строк до и во время обработки:

line_count = `wc -l < file_name`.to_i
lines_processed = 0
SmarterCSV.process(file_name, { chunk_size: 10, headers_in_file: false, user_provided_headers: user_provided_headers }) do |chunk|
  chunk.each do |row|
    lines_processed += 1
    return if lines_processed == line_count
    # parse row
  end
end

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...