Я пытаюсь превратить первые 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
, но это определенно недоступно.
Вот более элегантный способ (но, как мне кажется, с такой же эффективностью)
File.open "read_file.txt" do |io|
File.write "write.txt", io.each_line.first(10).join("\n")
end
File#read_lines
Возвращает все строки в имени файла как массив строк. Это, безусловно, очень неэффективно для больших файлов.