Ruby csv文件相关的操作

时间:2012-11-26 07:26:31

标签: ruby

我正在处理与文件相关的任务..我有一个包含一些行和标题的CSV文件。我需要获取具有特定标题的列并在最后创建一个新列并执行一些操作。我获取具有特定标头值的列值以及如何在最后创建新列?

2 个答案:

答案 0 :(得分:1)

假设您有以下格式的CSV

邮政编码网络ID网络名称区域新网络?显示名称 64024 275堪萨斯城2没有堪萨斯城 64034 275堪萨斯城2没有堪萨斯城

您可以使用FasterCSV; 如果你的csv中有标题,那么你可以指定它headers => true你可以做的是使用FasterCSV逐行获取数据,如下所示

FasterCSV.foreach(path_to_file, { :headers => true, :row_sep => :auto }) do |row|

每次迭代csv都会从CSV文件中获取行,现在您已经知道第2列有“network_id”标题,第3列有“网络名称”标题,因此您可以轻松地提供network_id = row[2]network_name = row[3]

希望它能回答你的问题

答案 1 :(得分:0)

CSV中的第一条记录可被视为标题记录。没有规则规定必须如此。

来到你的问题。简短的回答是你必须编写逻辑(使用API​​或没有它)来获取你认为是“标题”的内容。

  

我需要获取具有特定标头的列并在末尾创建一个新列并执行一些操作

我认为API不会提供任何隐式机制来获取特定的标头。 AFAIK CSV没有规格。您可以使用类似API的FasterCSV来解析CSV以完成工作。