ruby - 跳过 CSV 文件中标题前的行

标签 ruby csv

<分区>

我尝试搜索但找不到与我的问题相关的问题。假设我有一个如下所示的 CSV 文件:

Metadata line 1
Metadata line 2
Metadata line 3
Metadata line 4
foo,bar,baz
apple,orange,banana
cashew,almond,walnut

foo,bar,baz行是表头,后面几行是对应的数据。当我这样写我的 ruby​​ 代码时:

CSV.foreach("filename.csv",:headers=>true) do |row|
  puts "#{row}"
end

它显然坏了。跳过标题前的行的最佳方法是什么?目前我在想我可以做类似的事情:

Find the first row with commas and get line number
Extract that line as an array
Pass that array to :headers

但这感觉很麻烦——如果我确切地知道标题是哪一行,跳转到该行并忽略之前的所有内容的最佳方法是什么?这可能吗?如果这是一个以前被问过的问题,我会很高兴地吞下那些答案,也许我的搜索能力还不够好。

非常感谢!

最佳答案

CSV 有一个skip_lines 选项。不太清楚它会跳过标题行还是只跳过行,但值得一试。

:skip_lines - When set to an object responding to match, every line matching it is considered a comment and ignored during parsing. When set to a String, it is first converted to a Regexp. When set to nil no line is considered a comment. If the passed object does not respond to match, ArgumentError is thrown.

关于ruby - 跳过 CSV 文件中标题前的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29953886/

相关文章:

ruby - 如何禁用ruby UDPSocket解析recvfrom上的IP地址?

ruby-on-rails - 从 rails 的父类中包含的模块调用父类的子类的私有(private)方法是否可以?

csv - 为什么制表符分隔的文件比逗号分隔的文件占用更少的空间?

python-2.7 - 计算 CSV 行中的特定值

ruby - 配置Active Admin的标签has_many

ruby-on-rails - Rails 忽略渲染和 redirect_to

python - 使用 R 读取和搜索非常大的 CSV 文件是否有意义?

python - 使用 Python 将 JSON 转换为 CSV 问题

Python - data.to_csv 输出格式

C++ std::string 到 Ruby VALUE