【发布时间】:2014-08-14 09:37:03
【问题描述】:
是否可以将默认行分隔符从换行符 '\n' 或 '\r\n' 更改为其他字符,例如 '|'导入时。
我知道这看起来很愚蠢。但是我在 csv 文件中有多条记录,其中包含列地址,并且某些地址可能在信息中包含“\n”。
例如
角落案例
X|X|X|X|123
New Addr|X|X|X|
正常情况
X|X|X|X|123|X|X|X|
【问题讨论】:
-
见railscasts.com/episodes/…和“Greg Blass”的评论
-
你用什么代码写出 CSV?这应该由使用引号的内置 CSV 库处理,例如
"123\n...",这与您将获得的有效 CSV 一样。 FasterCSV 也被弃用,取而代之的是同一作者编写的 Ruby 1.9 内置 CSV 库。 -
我已经导出了文件。我需要正确导入它。 @tadman 我不确定 CSV 输出使用什么,但我现在可以更改它
-
我会选择
require "csv"并使用它。 FasterCSV 存在自退役以来永远无法修复的错误。如果您的 CSV 存在缺陷,您可能需要手动修复这些缺陷,或者找到一个能够以某种方式修复它的程序,除非您可以自己使用另一个脚本对其进行修补。 -
我无法更正 csv,因为它来自其他来源。自动对 7+Gb 文件进行这样的缺陷校正将消耗大量时间。我想我在解析所有 csv 文件时需要做一些修改。
标签: ruby csv ruby-on-rails-3.2 fastercsv data-import