从文件中读取多行

时间:2012-04-07 21:09:25

标签: ruby

如何从Ruby中的文件一次读取多行?

我尝试使用each_slice(2)并执行了:require 'enumerator',但它不起作用。我收到以下错误:

undefined method `each_slice' for #<String:0x877d12c> (NoMethodError)

1 个答案:

答案 0 :(得分:7)

IOString都有一个lines枚举器,您可以在each_slice上调用{/ 1}}:

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&gt; = 1.8.7