Pau*_*ber 3 ruby csv parsing newline
如何使用Ruby中的转义换行符解析CSV文件?我在CSV或FasterCSV中看不到任何明显的东西.
这是一些示例输入:
"foo", "bar"
"rah", "baz \
and stuff"
"green", "red"
Run Code Online (Sandbox Code Playgroud)
在Python中,我会这样做:
csvFile = "foo.csv"
csv.register_dialect('blah', escapechar='\\')
csvReader = csv.reader(open(csvFile), "blah")
Run Code Online (Sandbox Code Playgroud)
如果正确引用包含换行符的字段(如示例数据中所示),则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
Run Code Online (Sandbox Code Playgroud)
输出:
telemachus ~ $ ruby read.rb
Record: ["foo", "bar"]
Record: ["rah", "baz \\\nand stuff"]
Record: ["green", "red"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5834 次 |
| 最近记录: |