获取文件的前x行

时间:2018-09-15 18:30:27

标签: crystal-lang

我正在尝试将文件的前10行转换为字符串并将其写入另一个文件。

我有:

input[type=button]

是否有一种更优雅,更有效的方式来断开指定数量的行

理想情况下,像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 之类的东西会很好,但是肯定不可用。

2 个答案:

答案 0 :(得分:6)

这是一种更优雅的方式(但我相信它具有相同的效率)

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

答案 1 :(得分:2)

使用File#read_lines读取文件的各行,然后进行前10行:

File.read_lines("file")[0..9]