如何在 Ruby 中解析带有转义换行符的 CSV 文件?我在 CSV 或 FasterCSV 中没有看到任何明显的内容。
这是一些示例输入:
"foo", "bar"
"rah", "baz \
and stuff"
"green", "red"
在 Python 中,我会这样做:
csvFile = "foo.csv"
csv.register_dialect('blah', escapechar='\\')
csvReader = csv.reader(open(csvFile), "blah")
最佳答案
如果包含换行符的字段被正确引用(如在您的示例数据中),那么 Ruby 的 csv 解析器可以很好地处理它们。但是,如果您想让 Ruby 删除转义字符(因为 Python 似乎可以通过设置 escapechar
来完成),那么我在 Ruby 文档中也没有看到相应的方法。 (顺便说一下,从 Ruby 1.9 开始,FasterCSV 是 Ruby 的默认 csv 实现。)
#!/usr/bin/env ruby -w
require 'csv'
CSV.foreach('test.csv') do |rec|
puts "Record: #{rec}"
end
输出:
telemachus ~ $ ruby read.rb
Record: ["foo", "bar"]
Record: ["rah", "baz \\\nand stuff"]
Record: ["green", "red"]
关于ruby - 在 Ruby 中使用转义换行符解析 CSV 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1105882/