我正在使用 Ruby 的 CSV 库来解析一些 CSV。我有一个看似格式良好的 CSV 文件,是通过将 Excel 文件导出为 CSV 来创建的。
However CSV.open(filename, 'r')
导致CSV::IllegalFormatError
.
文件中没有恶意逗号或引号,也没有我看到的任何可能导致问题的内容。
我怀疑问题可能与行结尾有关。我能够解析通过文本编辑器(Aquamacs)手动输入的数据。只是当我尝试使用从 Excel(适用于 OS X)导出的数据时,出现了问题。当我在 vim 中打开导出的 CSV 时,所有文本都显示在一行上,其中^M
出现在线条之间。
从文档来看,您似乎可以提供open
带行分隔符;但是我不确定在这种情况下应该是什么。
Try: CSV.open('filename', 'r', ?,, ?\r)
As cantlin https://stackoverflow.com/users/271139/cantlin注意,对于 Ruby 2 来说是:
CSV.new('file.csv', 'r', :col_sep => ?,, :row_sep => ?\r)
我很确定这些会为您提供 DTRT。您还可以“修复”文件本身(在这种情况下,保留旧的open
)与以下vim
命令::%s/\r/\r/g
是的,我知道该命令看起来完全是无操作,但它会起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)