ruby - 读取带有双引号和单引号变量的 CSV 文件
问题描述
我正在处理非常大的文件(例如 1GB+),并希望从 csv 中读取一个字符串变量,该变量中可能有一个单引号或双引号。
有没有办法在打开 CSV 时快速有效地做到这一点?或者是将 quote_char 变量用于一种类型的引号并在字符串中转义另一种类型的引号的最有效方法?
CSV.foreach('file.csv', :quote_char=>"'", :force_quotes => false) do |row|
string_value = row[0]
end
解决方案
这是一个技巧:只需提供一个在输入符号中绝对不存在quote_char
的参数:
CSV.new(%|"foo'bar",'foo"bar','foo bar',"foo bar"|, quote_char: ?*).read
#⇒ [["\"foo'bar\"", "'foo\"bar'", "'foo bar'", "\"foo bar\""]]
推荐阅读
- mfc - (MFC) 始终显示与 Per Monitor HiDPI 相同大小的 UI
- java - 是否可以在 heroku 非 web java 应用程序上运行?
- r - R-比较组中跨多列的行
- c++ - Libcurl 未解析的外部符号 VS2019 (cpp)
- prolog - Prolog中的堆排序
- c++ - 如何监控网络流量和浏览器活动
- mongodb - 读取 X.509 证书时出现“asn1:结构错误:整数未进行最低编码”
- javascript - 如何对 D3 SVG 贝塞尔线进行动画处理以获得微妙的波浪效果
- jquery - jQuery 动画滑块无限循环
- python - 使用 Keras 进行布尔标签训练会导致错误“请提供具有相同第一维的数据”