#ruby #csv
#ruby #csv
Вопрос:
@out = File.open("#{File.expand_path("CSV")}/#{file_name}.csv", "w")
CSV::Writer.generate(@out) do |csv|
csv << ["01", "02", "test"]
end
@out.close
Когда я запускаю приведенный выше код, он сохраняет значения в формате CSV следующим образом
01, 02. тест
Я хочу, чтобы они сохранялись как
«01», «02», «тест»
Комментарии:
1. Возможно, вы захотите проверить FasterCSV fastercsv.rubyforge.org . В нем есть опция для указания символа кавычки. Я полагаю, что это будет программа чтения / записи CSV по умолчанию в Ruby 1.9.
2. @Rob FasterCSV — это
CSV
библиотека, которая поставляется в стандартной библиотеке с версией 1.9 (и уже давно).
Ответ №1:
Изменить
CSV::Writer.generate(@out)do |csv|
Для
CSV::Writer.generate(@out, {:force_quotes=>true}) do |csv|
Комментарии:
1. Если вы используете Ruby 1.8.x, я бы последовал совету @Rob Di Marco и установил FasterCSV. Он заменил CSV в 1.9.x
2. @vasu Какую версию Ruby вы используете?
Ответ №2:
Так почему бы не заключить их в двойные кавычки?
@out = File.open("#{File.expand_path("CSV")}/#{file_name}.csv", "w")
CSV::Writer.generate(@out) do |csv|
csv << ['"01"', '"02"', '"test"']
end
@out.close
Комментарии:
1. «»»01″»»,»»»02″»»,»»» проверьте «»» это выходные данные при открытии csv, если вы заключаете их в двойные кавычки