0
  def csv_parsing
    require 'csv'
    csv_file_path = File.join(File.dirname(__FILE__), "csv_data.csv")
    CSV.parse(csv_file_path) do |line|
      puts line[0]
    end
  end

这是一个简单的例子,我如何尝试解析 CSV 文件。上面的动作放在控制器中,文件在项目的根目录下。

但是,我没有从 CSV 文件中获取数据,而是获取了文件的路径,例如:

/Users/my_mane/ruby_folder/my_project/app/controllers/csv_data.csv

注意:该文件包含真实数据。

为什么只打印文件路径而不是自己的数据?

4

2 回答 2

2

因为 CSV#parse 实际上解析的是您传递给它的字符串,而不是来自该字符串包含的位置的文件。您需要的是 CSV#read:http ://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV.html#method-c-read

于 2012-07-18T18:31:45.750 回答
1

如果您使用文件路径而不是字符串中的数据,则可以使用以下命令逐行读取此文件:

CSV.foreach(csv_file_path) do |line|
  ...
end
于 2012-07-18T18:45:50.503 回答