У меня есть большой CSV. Я хочу удалить первую строку файла. Как это сделать? Я не хочу копировать каждую строку в массив и переписывать их для предыдущего индекса и удалять первый. Должен быть лучший способ. (может быть с более быстрым CSV? как?)
Если вы не возражаете против выделения в командной строке, это особенно эффективно:
system("tail -n +2 #{input} > #{output}")
Что-то вроде:
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
Вы имеете в виду, как это?
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
Скопируйте файл в другой файл, пропустив строки, которые вы хотите удалить. Вам не нужно загружать файл в массив, просто читайте и записывайте построчно в одном и том же цикле.