我如何在 Ruby 中一次从文件中读取多行?
我尝试使用 each_slice(2)
并且还做了:require 'enumerator'
,但它不起作用。我收到以下错误:
undefined method `each_slice' for #<String:0x877d12c> (NoMethodError)
最佳答案
IO
和String
都有一个lines
枚举器,您可以在以下位置调用each_slice
:
irb(main):004:0> STDIN.lines.each_slice(2).take(2)
a
a
b
c
=> [["a\n", "a\n"], ["b\n", "c\n"]]
当然,您可以将 STDIN
替换为任何其他 IO
实例(打开文件)。带字符串的演示:
irb(main):005:0> "a\na\nb\nc".lines.each_slice(2).to_a
=> [["a\n", "a\n"], ["b\n", "c"]]
这两个都在 Ruby >= 1.8.7 中工作
关于ruby - 一次从文件中读取多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10058404/