Ruby Rails 从 CSV 中删除注释

i c*_*ode 0 ruby csv ruby-on-rails

我是 Rails 新手,正在尝试处理 CSV 文件,某些文件在 CSV 文件开头会有注释,注释用 # 标记。如果有办法删除这些行吗?我不必忽略它们,因为我想保存不带注释的文件。

样本文件:

#-----------------------
# report --------------
#-----------------------
Date, transctions
20100923, 34
20200110, 56
Run Code Online (Sandbox Code Playgroud)

谢谢。

Ste*_*fan 6

CSV 库有一个skip_lines选项:

当设置响应 的对象时match,与其匹配的每一行都被视为注释并在解析过程中被忽略。当设置为字符串时,它首先被转换为正则表达式。当设置为nil无行时被视为注释。如果传递的对象没有响应matchArgumentError则抛出。

这应该适合你:

CSV.foreach(file, skip_lines: /^#/, headers: true) do |row|
  # ...
end
Run Code Online (Sandbox Code Playgroud)

/^#/匹配以 . 开头的行#