获取文件的前x行

问题描述 投票:2回答:2

我正在尝试将文件中的前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这样的东西会很好但是肯定不可用。

crystal-lang
2个回答
6
投票

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

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

2
投票

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

File.read_lines("file")[0..9]
© www.soinside.com 2019 - 2024. All rights reserved.