Если поля, включающие символ новой строки, правильно заключены в кавычки (как в данных вашего примера), то синтаксический анализатор Ruby csv может с ними справиться. Однако, если вы хотите, чтобы Ruby удалил escape-символ (как Python, кажется, может сделать, задав escapechar
), то я также не вижу метода для этого в документах Ruby. (Кстати, начиная с Ruby 1.9 FasterCSV является реализацией csv по умолчанию в Ruby.)
#!/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"]