Ruby-将文件行拆分为数组,并在数组名中添加索引

时间:2018-09-08 16:32:31

标签: arrays ruby file

这是一个非常具体的问题(我怀疑大多数人会从中受益),但我将解释:

我有一个示例文件,其中包含每行用逗号分隔的数字:

1,2,3,4
5,6,7,8
abcdefg
1.3.4

我希望能够将文件分成几行(轻松完成):

file = File.open(filename)
file = file.read.split("\n")

现在,我想将每行分成一个数组,如果它包含“,”并且名称或数组类似于以下内容:1array(其中1为文件行索引)

像这样的事情会更可取:

file.each_with_index |c, i| do # c=content, i=index
  if c.include? ","
    instance_array_set("@#{i}array", c.split(","))
  end
end

我到处都在寻找实例数组概念上的任何内容,但似乎什么也找不到。我愿意采用完全不同的方式来做我想做的事情(只要时间不长)。

提前(希望如此)

2 个答案:

答案 0 :(得分:0)

构建一个数组数组:

result =
  File.readlines('/tmp/input').map do |line|
    values = line.chomp.split(',')
    values if values.size >= 2
  end.compact

result[0][2]
#⇒ "3"

答案 1 :(得分:0)

又一个版本:

File.readlines(filename).select{ |e| e.split("").include? "," }.map{ |e| e.chomp.split "," }

# => [["1", "2", "3", "4"], ["5", "6", "7", "8"], ["11", "12", "13"]]