我正在处理非常大的文件(例如1GB以上),并希望从csv中读取字符串变量,该变量中可能包含单引号或双引号。
打开CSV时,是否可以快速有效地执行此操作?还是最有效的方法是对一种类型的引号使用quote_char变量并在字符串中转义另一种类型的引号?
CSV.foreach('file.csv', :quote_char=>"'", :force_quotes => false) do |row|
string_value = row[0]
end
答案 0 :(得分:0)
这是一个窍门:只需提供一个quote_char
参数,其中输入符号中肯定不存在
CSV.new(%|"foo'bar",'foo"bar','foo bar',"foo bar"|, quote_char: ?*).read
#⇒ [["\"foo'bar\"", "'foo\"bar'", "'foo bar'", "\"foo bar\""]]