Как удалить строку файла CSV, используя Ruby? - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть большой CSV. Я хочу удалить первую строку файла. Как это сделать? Я не хочу копировать каждую строку в массив и переписывать их для предыдущего индекса и удалять первый. Должен быть лучший способ. (может быть с более быстрым CSV? как?)

Ответы [ 4 ]

2 голосов
/ 16 февраля 2012

Если вы не возражаете против выделения в командной строке, это особенно эффективно:

system("tail -n +2 #{input} > #{output}")
1 голос
/ 16 февраля 2012

Что-то вроде:

source=File::open("source","r")
dest=File::open("dest","w")
source.each_line do |line|
  next if f.lineno == 1
  dest.write(line)
end
source.close
dest.close
0 голосов
/ 17 февраля 2012

Вы имеете в виду, как это?

source_path = 'liner.txt'

open source_path do |input|
  input.gets

  open "#{source_path}.header_removed", 'w' do |output|
    input.each do |line|
      output << line
    end
  end
end

Но этот код требует простой формат для CSV

0 голосов
/ 16 февраля 2012

Скопируйте файл в другой файл, пропустив строки, которые вы хотите удалить. Вам не нужно загружать файл в массив, просто читайте и записывайте построчно в одном и том же цикле.

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