从Ruby中的文本文件中读取特定的数据列

时间:2015-03-11 00:22:42

标签: ruby

我尝试过谷歌搜索,但我只能找到其他语言的解决方案,关于Ruby的解决方案是针对CSV文件的。

我有一个看起来像这样的文本文件

0.222222 0.333333 0.4444444这是第一行。

有许多行采用相同的格式。所有数字都是浮点数。

我希望能够只读取第三列数据(0.444444,其下的值)并忽略其余数据。如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

您仍然可以使用CSV;只需将列分隔符设置为空格字符:

require 'csv'

CSV.open('data', :col_sep=>" ").each do |row|
  puts row[2].to_f
end

但是,您不需要CSV,如果分隔字段的空格不一致,这是最简单的:

File.readlines('data').each do |line|
  puts line.split[2].to_f
end

我建议在心理上将任务分解为:

  1. 如何阅读文件的行?
  2. 如何在空格周围分割字符串?
  3. 这两个问题很容易学会处理。