打开并返回带头的fastercsv对象

时间:2013-03-23 15:19:45

标签: ruby fastercsv

我有一个如下的数据样本

Ticker,Date/Time,Conseqhigher,Conseqlower,H,L,newHigh,newLow,Prevbarlow,Prevbarhigh,uptrend,dntrend,min15low,min15high
EUR.USD-IDEALPRO-CASH,2012-02-19 17:20,1,0,1.3208,1.3198,1,1,1.3183,1.3211,0,0,1.3139,1.3153
EUR.USD-IDEALPRO-CASH,2012-02-19 17:25,0,0,1.3209,1.3198,1,0,1.3198,1.3208,0,0,1.3139,1.3153

我正在尝试使用更快的csv来打开它并稍后处理它。

require 'fastercsv'
def query()

return FasterCSV.read("c:\\temp\\test.csv")

end

read方法没有任何标题选项。我该如何解决?

1 个答案:

答案 0 :(得分:1)

您应该使用标准CSV库。它是FasterCSV加上对Ruby 1.9的m17n编码引擎的支持。

回到您的问题,有一个:headers选项可以通过标题访问每个值。

#read方法会污染整个文件:

CSV.read(CSV_FILE_PATH, :headers => true).each do |line|
  puts line['Ticker']
end

#foreach方法是阅读的预期主要界面:

CSV.foreach(CSV_FILE_PATH, :headers => true) do |line|
  puts line['Ticker']
end

两种方法都会输出:

EUR.USD-IDEALPRO-CASH
EUR.USD-IDEALPRO-CASH

请参阅http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV.html