如何在 Ruby 中一次读取一个文件?

2024-04-19

我想迭代读取文件中固定数量的字节,然后返回它们

我的代码如下。我从互联网上的一个例子中获取了它

File.open('textfile.txt') do |file|
  while (buffer = file.read(size)) do
     yield buffer
  end
end

我收到错误没有给出块。


嗯,那是因为没有给出任何阻止​​。您可以更换yield buffer with puts buffer(或您想要的任何操作)或创建一个采用代码块的单独方法:

def read_file
  File.open('textfile.txt') do |file|
    while (buffer = file.read(size)) do
      yield buffer
    end
  end
end

并这样称呼它

read_file do |data|
  // do something with data
  puts data 
end

添加普通参数(如文件名或块大小)read_file,如果有必要的话。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ruby 中一次读取一个文件? 的相关文章

  • Ruby 中多维数组的帮助

    我有以下代码将字符串拆分为 3 个字节的组 str hello ix 0 iy 0 bytes tby str each byte do c if iy 3 iy 0 bytes ix tby each index do i bytes i
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L
  • 如何在 Firefox 插件中追加到文件?

    var tabs require sdk tabs var iofile require sdk io file var widgets require sdk widget var selection require sdk select
  • “没有可用的二元红宝石”是什么意思?

    每当我使用rvm install x x x 即使安装成功 我也会收到此警告 No binary rubies available for osx 10 12 x86 64 ruby 2 4 0 Continuing with compil
  • 可以覆盖/实现的 ruby​​ 运算符列表

    是否有可以覆盖的所有 ruby 运算符的列表 不是那些不能的 Here s Ruby 运算符表 http phrogz net programmingruby language html table 18 4 方法和可重载的有 Elemen
  • 有没有人有 Ruby 和 Rake 的 Notepad++ 函数列表插件的解析规则

    我使用 Notepad 编辑 rake 文件 并且希望能够使用函数列表插件 我无法在线找到任何解析规则 并且 语言解析规则 对话框没有非常清晰的记录 我正在将方法解析到以下列表中 但还想显示任务 Function Begin t def t
  • 读取混合(即文本和二进制)数据的最佳方法是什么?

    我需要能够读取混合二进制和非二进制数据的文件格式 假设我知道输入是好的 那么最好的方法是什么 作为示例 我们以一个文件为例 该文件的第一行是 double 换行符 0x0D 0x0A 后面是十个字节的二进制数据 当然 我可以计算换行符的位置
  • 如何从 Rails 中的 date_select 或 select_date 获取日期?

    Using select date给我回一个params my date with year month and day属性 如何轻松获取 Date 对象 我希望有类似的事情params my date to date 我很高兴使用date
  • Rails 4:资产未在生产中加载

    我正在尝试将我的应用程序投入生产 但图像和 CSS 资源路径不起作用 这是我目前正在做的事情 图像资源位于 app assets images image jpg 样式表位于 app assets stylesheets style css
  • Rails 控制台无法运行

    rbenv 红宝石版本 2 6 6 导轨版本 5 1 4 我正在较旧的代码库中工作 ruby 2 6 6 rails 5 4 1 这是我每天使用的代码库 我必须通过 rbenv 下载一个新的 ruby 版本作为单独的存储库 这样做在我的旧代
  • 使用 VCR 过滤敏感数据

    我正在使用 VCR gem 记录 http 交互并在将来重播它们 我想过滤掉 uri 请求中的实际密码值 以下是 uri 的示例 http services somesite com Services asmx Cabins Usernam
  • REXML - 如何提取单个元素

    我正在用 ruby 编写一些验收测试 其中涉及断言响应 XML 中值的存在 我的 XML 是这样的
  • Bundle 说 gem 丢失了 - 但事实并非如此?

    背景 我正在维护contentRuby On Rails 站点 但我确实没有 Rails 的经验 当尝试运行 Rails 服务器时 rails s我明白了 在任何来源中均找不到 activesupport 3 2 0 Run bundle
  • Ruby require 'file' 不起作用,但 require './file' 可以。为什么?

    我有一个充满 ruby 文件的文件夹 当我尝试使用位于同一目录中的另一个文件中的一个文件时require file 我得到一个LoadError但是当我使用require file 一切正常 有人可以向我解释为什么会发生这种情况吗 如果有什
  • 在 Ruby 中创建一个空文件:相当于“touch”?

    创建一个的最佳方式是什么emptyRuby 中的文件 类似于 Unix 命令的东西 touch https en wikipedia org wiki Touch 28Unix 29 touch file txt FileUtils tou
  • 为什么 fopen 无法打开已存在的文件?

    我在 Windows XP 上使用 Visual Studio 6 是的 我知道它很旧 构建 维护 C DLL 我遇到了 fopen 无法打开现有文件的问题 它总是返回 NULL 我试过了 通过将 errno 和 doserrno 设置为零
  • 在 Java(TM) Platform SE 二进制文件中打开

    我尝试删除一个文件 其中有两个文件 其中一个略有更改 因此我可以删除旧文件并将其替换为我更改的新文件 当我尝试删除该文件时 收到错误消息 文件正在使用 其中表示该操作无法完成 因为该文件是在 Java TM Platform SE 二进制文
  • Shoulda/RSpec 匹配器 - 条件验证

    在我的代码中 我使用 Shoulda 匹配器进行了以下验证 效果很好 it should validate presence of name 在我的模型中 我已将条件添加到验证中 validates presence of name if
  • 什么是适合 Rails 3 的测试框架?

    去年我一直在使用 Ruby On Rails 但是 无法进行单元测试 现在我必须编写单元测试代码 哪个测试框架好 为什么 有这方面的好的教程吗 我的系统配置 Ruby 1 9 2 Rails 3 Ubuntu 10 第一个技巧是 尝试升级到
  • Ruby 中的 url_encode

    I read 的文档url encode http rdoc info stdlib erb 1 9 3 ERB Util 3Aurl encode 是否有一个表可以准确地告诉我哪个字符被编码为什么 使用url encode ERB s u

随机推荐

  • 如何只获取Python函数的返回值?

    我正在尝试通过 Python 学习编程 我想知道是否可以只获取函数的返回值而不获取其其他部分 这是代码 比方说 这是主要功能 variable a 5 while variable a gt 0 input user raw input i
  • 如何解决 pandas 读取大 csv 文件时的内存问题

    我有一个 100GB 的 csv 文件 其中有数百万行 我需要在 pandas 数据框中一次读取 10 000 行 并将其分块写入 SQL 服务器 我按照建议使用了 chunksize 以及 iteartorhttp pandas docs
  • 使用 SQL Server AdoJobStore 配置 Quartz.NET

    我在尝试让 Quartz NET 与 AdoJobStore 一起使用时遇到问题 这里的其他问题似乎都没有遇到我遇到的问题 我能够在没有 AdoJobStore 配置的情况下正常工作 但希望最终保留所有内容 但是在尝试时出现错误GetSch
  • Spring Batch ItemReader 列表仅处理一次

    我正在尝试使用创建 Spring Batch 作业ListItemReader
  • 替换 & 为 &

    我正在尝试使用 W3C 验证系统进行验证 但出现错误 第 59 行 第 47 列 字符 是分隔符的第一个字符 但作为数据出现 我知道原因是 您使用了未转义的与号 这在某些情况下可能有效 但建议使用 amp 这始终是安全的 在表格中 我是这样
  • jQuery Tokeninput:只读不起作用

    我正在使用在以下位置找到的插件http loopj com jquery tokeninput http loopj com jquery tokeninput 在创建具有 Web 应用程序管理员访问权限的用户列表的字段中 搜索 添加和删除
  • Stop-Service Cmdlet 无法打开存在的服务

    我正在尝试编写一个 PowerShell 脚本来停止本地计算机上的服务 当我运行 get service cmdlet 时 它按预期工作 当我使用 stop service cmdlet 时 出现错误 指出不存在具有我指定名称的服务 如果这
  • 如何将文件的内容与列最后一个数字的增量连接起来

    我有一个包含一些内容的文件 需要重复第 n 次并添加最后一列号的增量 Input content of a file TCTA 7 ccta TCTA 1 TCTA 8 ccta TCTA 1 TCTA 9 ccta TCTA 1 TCTA
  • 如何为命令 net user 在列表中返回的每个用户运行批处理文件?

    我的目标是制作一个通用代码 循环遍历计算机中的所有用户帐户名称并将输出发送到批处理文件 net user 命令输出用户列表 但我想将每个用户名分配给一个参数 所以我应该使用for f命令去做 这可能看起来很简单 但请记住用户名可能在任何位置
  • FFT 的窗口大小与数据长度

    我正在尝试对流音频数据进行快速频谱分析以捕获元音 类似于 JLip sync 使用 PyAudio 在短时间内 0 0625 秒 捕获小块 1024 的语音数据 使用 numpy fft 进行分析 并使用 numpy hanning 窗口消
  • 你如何知道 NSURLSession 对象何时已被 iOS 失效?

    我在测试中发现一个错误 偶尔会收到以下 iOS 错误 标识符为 GUID 的后台 URLSession 已存在 即使我在每次测试后的清理调用中对 NSURLSession 调用 invalidateAndCancel 我正在寻找一种方法来等
  • 如何通过 SOAP API 禁用/停用 SalesForce 用户?

    我想使用 SOAP API 以编程方式禁用用户 我怎样才能做到这一点 我正在使用合作伙伴 API 并且拥有开发人员版本 我已设置管理用户权限 我已经经历过this http www salesforce com us developer d
  • 存储徽章标准的最佳方式?

    我一直在考虑如何在新网站上实现类似于SO的徽章功能 存储徽章标准的最佳方式是什么 两个想法 All code 第二系统 创建一个元架构来定义徽章及其标准 在数据库中存储一些信息 并让代码查询它以找出徽章及其标准 还有更好的方法吗 Rules
  • 如何实现 *object* 来改进我的时钟示例 javascript 程序

    这项工作的目标是理解和发挥某些意义object我听说过的概念 关于赏金 有很多不同的方式 方法可以做到这一点 My tries https stackoverflow com a 13219373 1765658不是很干净 为了添加第二个时
  • 在购物车页面上显示分级定价

    如果我在这个页面上 http 结账 购物车 对于购物车中的产品 我想显示分级定价 与商品页面上显示的定价相同 如果有 我的尝试是添加
  • 正则表达式查找第二个和第三个斜杠之间的文本

    我想捕获字符串中第二个斜杠之后和第三个斜杠之前出现的文本 例子 ip地址 数据库名称 我只需要捕获数据库名称 数据库名称可能包含字母 数字和下划线 谢谢 如何访问它取决于您的语言 但您基本上只需要一个捕获组来捕获第二个和第三个 之间的任何内
  • 以编程方式查找 Android 系统信息

    我正在尝试以编程方式查找 Android 设备的系统信息 具体来说 RAM 中央处理器速度 核心 架构等 是否有任何 Android 类指定此信息 我一直在使用 android board 库 但它似乎没有我想要的一切 让我告诉你我做了什么
  • gevent 无法在 OS X Capitan 上的 python 虚拟环境中安装

    我刚刚安装了 OS X Capitan 并尝试在 python2 7 x 虚拟环境中安装 gevent 这就是我得到的 看起来像是与 gcc 有关的东西 这是回溯 Building wheels for collected packages
  • 从部署配置中配置 Pod 的重启策略

    我们正在使用 Openshift Kubernetes 的托管版本 我正在努力将部署配置创建的所有 pod 的 pod 重启策略从 始终 设置为 从不 但我不确定 yaml 中的位置来做出这个改变 我们的部署配置如下所示 kind Depl
  • 如何在 Ruby 中一次读取一个文件?

    我想迭代读取文件中固定数量的字节 然后返回它们 我的代码如下 我从互联网上的一个例子中获取了它 File open textfile txt do file while buffer file read size do yield buff