2013-03-02 67 views
0

我正在使用Ruby csv库,我想知道如何将单引号添加到特定列。ruby​​ csv将单引号添加到特定列

实例行:1,56,"James",Finland

说我要一个阵列

arr = [] 
    CSV.foreach('test.csv') {|row| arr << row } 

在加上Finland

+1

那些看起来像双引号。 – pguardiario 2013-03-02 23:14:05

+0

你需要什么?我正在考虑使用转换器,但对于特定数据而言,这可能不是特定的列。 – knut 2013-03-02 23:16:18

+0

我正在做它的数据我有一个csv文件专门为日期字段没有引号周围。 – mpora 2013-03-03 00:39:16

回答

0

尝试像

首先阅读CSV引号和拉都行然后用数组拉动你想保留在双引号中的列

arr.each do |row| 
    column_value = row[3] #I am assuming i am editing the second column 
    row[3].replace("'" + "#{column_value}" + "'") 
    end 

然后写回文件

CSV.open("path/to/file.csv", "wb") do |csv| 
    arr.each {|row| csv << row } 
end 
+0

CSV已经存在,我想修改一个特定的列 – mpora 2013-03-02 22:55:57

+0

@mpora:更新了答案 – AnkitG 2013-03-02 23:16:20

+0

我不得不改变这一行:'CSV.foreach('test.csv' ){| row | arr << row'} to:'CSV.foreach('test.csv',encoding:'iso-8859-1:utf-8'){| row | arr << row}',因为我遇到了一些编码问题,但是现在已经在引号中的字段正在丢失引号。 – mpora 2013-03-03 12:07:02