如何從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