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)
谢谢。
CSV 库有一个skip_lines选项:
当设置响应 的对象时
match,与其匹配的每一行都被视为注释并在解析过程中被忽略。当设置为字符串时,它首先被转换为正则表达式。当设置为nil无行时被视为注释。如果传递的对象没有响应match,ArgumentError则抛出。
这应该适合你:
CSV.foreach(file, skip_lines: /^#/, headers: true) do |row|
# ...
end
Run Code Online (Sandbox Code Playgroud)
/^#/匹配以 . 开头的行#。