ruby - 一次从文件中读取多行

标签 ruby

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

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

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

最佳答案

IOString 都有一个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/

相关文章:

ruby-on-rails - 如何在 html.erb 文件中运行多行 Ruby

ruby-on-rails - 如何在 Rails 中添加禁用的提交按钮

ruby-on-rails - 如何让 Rails 从本地源目录中获取 gem?

ruby - 林克 map !或收集!

ruby - 在没有 rvm 或 rbenv 的情况下编译 Ruby 2.0 错误, `readline.c:1886:26: error: ' Function' undeclared (first use in this function)`

ruby-on-rails - 为什么在一个日期上加上和减去 2 个月不会返回相同的日期?

ruby - Buildr——调试构建文件

ruby - 使用 Faraday 通过 Unix 套接字发出 HTTP 请求

ruby-on-rails - 如何通过 API 将 YouTube 视频详细信息导入 Rails 应用程序?

javascript - 服务器端 javascript 引擎的 Ruby 绑定(bind)?