2013-03-02 3 views
0

Ruby CSV 라이브러리를 사용하고 있으며 특정 열에 작은 따옴표를 어떻게 추가 할 수 있는지 궁금합니다.ruby ​​csv 특정 열에 작은 따옴표를 붙입니다.

예 행 : 1,56,"James",Finland

가 나는 배열

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

의 모든 행을

+1

다시 작성합니다. – pguardiario

+0

무엇이 필요합니까? 나는 변환기를 사용하려고 생각하고 있지만 특정 열이 아닌 특정 데이터에 대해서는 가능합니다. – knut

+0

나는 주위에 따옴표가없는 날짜 필드에 대한 CSV 파일의 데이터에 대해이 작업을 수행하고 있습니다. – mpora

답변

0

는 CSV

먼저 읽기 식으로 뭔가를 시도 Finland에 따옴표를 추가하고 끌어 할 말 그런 다음 배열에서 큰 따옴표로 묶으려는 열을 당깁니다

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

+0

@mpora : 대답 업데이트 – AnkitG

+0

이 줄을 변경해야했습니다 :'CSV.foreach ('test.csv ') {| 행 | CSV.foreach ('test.csv', 인코딩 : 'iso-8859-1 : utf-8') {| 행 | arr << row}'일부 인코딩 문제가 발생했지만 이미 따옴표 안에있는 필드는 따옴표를 잃어 버리고 있습니다. – mpora

관련 문제