2015-11-23 4 views
2

Я хочу поставить в кавычках строки в CSV-файл, как это:Рубин удалить тройные кавычки

csv << ["\"marks\"", marks] 

где метко является целочисленным переменным. Проблема заключается в том, что когда я открываю CSV, я получаю это:

"""marks""",9 

То же самое происходит и с одинарными кавычками. Есть ли способ записать его с помощью одного набора котировок? Я не хочу снова открывать файл и стирать его, я просто хочу напечатать в строке с кавычками с одним набором кавычек. Все, что я хочу в CSV является:

"marks",9 
+0

Я попытался добавить их в качестве отдельных переменных символов, но это не сработало, а – Reaper9806

+0

Пытались ли вы '«„Marks“»' или '«„метки“» '? –

+0

Тот же результат, также он должен быть двойным кавычками, иначе выход не пройдет проверку. – Reaper9806

ответ

3

Это один может помочь:

marks = 5 
csv=CSV.open("temp.csv", "w", {quote_char: " "}) 
csv << ["\"marks\"", marks] 
csv.close 

csv in editor

+0

Вам не нужно' col_sep: ";" ' –

+0

@WandMaker Конечно, это по умолчанию. Спасибо. –

+0

Спасибо, это – Reaper9806

1
marks = 5 
csv = CSV.open('temp.csv', 'w', :force_quotes => true) 
csv << ['marks', marks] 
csv.close 

Это будет иметь неблагоприятный побочный эффект, цитируя числовые значения, а также, но это может привести вас туда, где вам нужно.

$ cat temp.csv 
"marks","5" 
+0

Также «5» должно быть без кавычек. –

+0

@tadman: У оригинала была строка с кавычками в ней, потому что он пытался заставить цитируемое значение появляться в CSV. Это достигает этого результата, хотя и с числовыми значениями, указанными также. – mwp

+0

@MaximPontyushenko: Да, как я очень четко отметил в своем ответе. Это явно не указано в качестве жесткого требования в вопросе и не может быть разрывом сделки для ОП, если он решает основную проблему. Это просто еще один вариант. – mwp