我一直在尝试在ruby-1.9.2中导入CSV文件时遇到令人难以置信的时间.
我试图解析的文件有:
csv.txt(代表性输入,真实的是101k行):
?@?@jié@"seal" radical in Chinese characters, (Kangxi radical 26)
Run Code Online (Sandbox Code Playgroud)
我的代码:
require 'csv'
CSV.foreach("/Users/adam/Desktop/csvtest.txt", {:col_sep => "@"}) do |row|
puts row.to_s
end
Run Code Online (Sandbox Code Playgroud)
我想要的输出:
["?", "?", "jié", "\"seal\" radical in Chinese characters, (Kangxi radical 26)"]
Run Code Online (Sandbox Code Playgroud)
我得到的输出:
CSV::MalformedCSVError: Unclosed quoted field on line 1.
from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/CSV.rb:1910:in `block in shift'
from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/CSV.rb:1825:in `loop'
from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/CSV.rb:1825:in `shift'
from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/CSV.rb:1767:in `each'
from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/CSV.rb:1202:in `block in foreach'
from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/CSV.rb:1340:in `open'
from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/CSV.rb:1201:in `foreach'
from (irb):31
from /Users/adam/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)
它说有未公开的引用现场,但我可以看到报价开启和关闭.
逃避报价什么也没做.我得到了同样的错误(...@""seal"" r... …