我正在使用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")
=> []
答案 0 :(得分:4)
这应该有效:
data = SmarterCSV.process("/Users/diasks2/test.csv", row_sep: "\r")
如果未指明row_sep
,smarter_csv
将使用系统新行分隔符,对于Windows计算机为"\r\n"
,对于unix计算机为"\r"
。您的文件有"\r"
来分隔行,因此您需要明确指出这一点。
修改 - 显然,smarter_csv
有猜测行分隔符的功能 - 如果您使用以下内容:
data = SmarterCSV.process("/Users/diasks2/test.csv", row_sep: :auto)
gem应标识包含以\n
,\r\n
或\r
结尾的行的文件,并相应地解析它们。