如何从Ruby文件中一次读取多行文件?从文件中读取多行文件
我尝试使用each_slice(2)
,也做了:require 'enumerator'
,但它不起作用。我收到以下错误:
undefined method `each_slice' for #<String:0x877d12c> (NoMethodError)
如何从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"]]
当然,你可以与任何其他IO
实例替代STDIN
(打开文件)。演示用的字符串:
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
thnx为了澄清与此代码,我明白了吧! – bytebiscuit 2012-04-07 21:31:05
@Niklas完美的工作,但是在Ruby ruby 2.0中,它给出了一个警告:'IO#行被弃用;使用#each_line来代替'。 因此,用'STDIN.each_slice(2).take(2)'代替上述行代替。 – 2016-05-17 19:41:22
你怎么定义“线”,你是如何得到这个数据?它是在一个字符串中还是正在从文件中读取? – 2012-04-07 21:14:27
我以为我在标题中解释它,它在一个文件中! – bytebiscuit 2012-04-07 21:24:51
@bytebiscuit:如果没有您尝试使用的*代码*,错误消息是无用的。只是告诉我们你使用'each_slice'没有帮助,因为你显然是以错误的方式使用它(在一个字符串上?)。您的代码也会告诉我们您尝试阅读的来源。 – 2012-04-07 21:26:28