将管道分隔文件转换为哈希?

时间:2013-03-14 15:35:23

标签: ruby

我正在使用Ruby 1.9.3并且有两个问题:

(1)如何将具有多个数据字段的文本文件转换为哈希?:

name | student-id | maths | english | science | grade | remarks   | 
abc  |  10001     |  90   | 80      | 80      | A+    | excellent |
.
.
.

(2)此外,如果我有一个新列是另一个哈希:

name | student-id | maths | english | science | grade | remarks   | options     |
abc  |  10001     |  90   | 80      | 80      | A+    | excellent | <condition> |
.
.
.

其中,| Options |是另一个哈希:

| Stream      | Average   |
| Com Science |  90       |
| Elec Eng    |  85       |
| Mech Eng    |  80       |
.
.
.

我想根据平均分数列出所有符合所有不同流的学生。

1 个答案:

答案 0 :(得分:3)

首先,使用Ruby的内置CSV类。将:col_sep值指定为'|'以覆盖默认值','CSV.newCSV.open都允许您指定该选项。