在Ruby中解析文本文件和排序?

时间:2009-11-09 03:00:33

标签: ruby parsing sorting text

我想编写一个Ruby程序,它可以解析三个单独的文本文件,每个文件包含不同的分隔符,然后根据特定条件对它们进行排序。

有人可以指出我正确的方向吗?

3 个答案:

答案 0 :(得分:8)

目前尚不清楚文件中的数据格式是什么,以及您用于排序的标准,因此我无法为您提供准确的答案。

但是,基本上,你可能需要这样的东西:

File.open("file_name","r").read.split(",").sort_by {|x| x.length}

您:

  • 使用File.open打开文件。
  • 读取整个文件并获得一个字符串。您还可以使用each方法逐行读取文件。
  • 拆分字符串使用split。使用的分隔符为,
  • 使用sort_by根据块中指定的条件对其进行排序。

答案 1 :(得分:2)

Enumerable#sort_by将允许您使用特定的比较函数对数组(或其他可枚举对象)进行排序。

答案 2 :(得分:0)

如果“带有分隔符的文本文件”是指CSV文件(字符分隔值),那么您可以使用csv library(它是标准库的一部分)来解析它们。 CSV为您提供外观和感觉类似于Ruby Hash es和Array的对象,因此您可以使用所有标准Ruby方法进行排序,过滤和迭代,包括前面提到的Enumerable#sort_by。< / p>