Ruby IO.readlines在文件的最后一行之前停止

时间:2014-02-05 20:39:06

标签: ruby readlines

我在Windows机器上使用Ruby 1.9.3。

当我在文件上运行IO.readlines时,会得到奇怪且意外的结果。在文件上运行IO.readlines的结果是一个数组,它只是以不是文件中最后一行的行结束。例如,数组中的最后一个元素是此字符串:

MLOGIC(RESPONSE_FREQUENCY):  Parameter NUMERATOR_SUBSET has value \x01where

这是数组中的最后一个元素,即使该文件实际上还有更多行。

当我使用Ruby 2.0.0在OS X上的完全相同的文件上运行IO.readlines时,没有问题;它按预期将整个文件读入数组。

对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

Windows与OSX上的IO.readlines(文档1.9.32.0.0)的主要区别是默认行分隔符$/ - 在unixoid系统上,您会发现为"\n",在Windows上为"\r\n"

要获得相同的行为,您可以像这样调用IO.readlines

arr = IO.readlines('./testfile', "\n")
相关问题