smarter_csv中的空数组

时间:2014-03-23 09:16:42

标签: ruby-on-rails ruby csv import

我正在使用Ruby 2.1.1和gem smarter_csv版本1.0.17。我试图得到一个简单的例子,但继续得到一个空数组。关于我做错的任何提示。

2.1.1 :006 > f = File.open("/Users/diasks2/test.csv", "rb")

2.1.1 :007 > f.read
 => "source_language,target_language\rhello,hola\rlibrary,biblioteca"

2.1.1 :008 > require 'smarter_csv'
 => true 
2.1.1 :009 > data = SmarterCSV.process("/Users/diasks2/test.csv")
 => [] 

1 个答案:

答案 0 :(得分:4)

这应该有效:

data = SmarterCSV.process("/Users/diasks2/test.csv", row_sep: "\r")

如果未指明row_sepsmarter_csv将使用系统新行分隔符,对于Windows计算机为"\r\n",对于unix计算机为"\r"。您的文件有"\r"来分隔行,因此您需要明确指出这一点。


修改 - 显然,smarter_csv猜测行分隔符的功能 - 如果您使用以下内容:

data = SmarterCSV.process("/Users/diasks2/test.csv", row_sep: :auto)

gem应标识包含以\n\r\n\r结尾的行的文件,并相应地解析它们。