我有一个格式错误的.csv文件,这是由一些额外的\n.例如:
Name,Comment
"Peter","Good morning"
"Paul","How are you
"
"Mary","Fine"
Run Code Online (Sandbox Code Playgroud)
第二行以不需要的额外结束\n.
如何删除所有\n未引用双引号的尾部"(假设整个文件已经读入字符串)?
不要将整个内容读成字符串,使用1.9中的标准CSV解析器来读取它.如果你有pancakes.csv,那么,然后:
require 'csv'
data = CSV.open('pancakes.csv').map { |r| r.map(&:strip) }
# or
data = CSV.open('pancakes.csv').map { |r| r.map(&:chomp) }
Run Code Online (Sandbox Code Playgroud)
然后你会有这个data:
[
["Name", "Comment"],
["Peter", "Good morning"],
["Paul", "How are you"],
["Mary", "Fine"]
]
Run Code Online (Sandbox Code Playgroud)
因此,您可以非常简单地将您的数据清理干净并且很好地解析.如果您只需要为其他无法处理嵌入换行符的程序清理CSV,则可以使用CSV将其再次写回.
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |