当前位置:  开发笔记 > 后端 > 正文

在使用Ruby解析文本文件时如何跳过某些列?

如何解决《在使用Ruby解析文本文件时如何跳过某些列?》经验,为你挑选了1个好方法。

我必须用Ruby解析制表符分隔的文本文件,以从中提取一些数据.由于某些未知的原因,一些列没有使用,只是基本上是间隔物; 我想忽略这些列,因为我不需要它们的输出(但是我不能忽略所有空列,因为一些合法的列具有空值).我已经知道这些列的索引(例如第6,14,24和38列).

虽然我可以在解析文件时添加一个条件并说解析它,除非它是其中一个列,这似乎不是"Rubyish" - 是否有更好,更优雅的方法来处理它?RegExps,也许?我想做一些类似[6, 14, 24, 38].each { |x| columns.delete_at(x) }删除未使用的列的事情,但这将迫使我重新确定我实际需要的列的索引.我真正想要做的就是遍历整个事情,检查当前列的索引,如果它是"坏"列之一,则忽略它.然而,拥有像这样的代码似乎非常难看unless x == 6 || x == 14 || x == 24 || x == 38



1> Chuck..:

不需要像这样的大规模条件.

bad_cols = [6, 14, 24, 38]
columns.each_with_index do |val,idx|
  next if bad_cols.include? idx
  #process the data
end

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有