Получить первые x строк файла - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь получить первые 10 строк из файла в строку и записать их в другой файл.

У меня есть:

File.open("read_file.txt", "r") do |rf|
  File.open("write.txt", "w") do |wf|
    rf.each_line.with_index do |line, idx|
      break if idx > 9
      wf.puts(line)
    end
  end
end

Есть ли ещеэлегантный и эффективный способ разбить на указанное количество строк

В идеале было бы неплохо что-то вроде file.lines(3) : String, но это, конечно, недоступно.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2018

Считайте строки файла с помощью File#read_lines и затем возьмите первые 10 строк:

File.read_lines("file")[0..9]
0 голосов
/ 15 сентября 2018

Вот более элегантный способ (но, я думаю, с той же эффективностью)

File.open "read_file.txt" do |io|
  File.write "write.txt", io.each_line.first(10).join("\n")
end
...