Ruby 循环浏览包含节的文本文件
我有一个大约11000行的文件。它是这样建立起来的:Ruby 循环浏览包含节的文本文件,ruby,loops,text,each,Ruby,Loops,Text,Each,我有一个大约11000行的文件。它是这样建立起来的: some info 1 some cool info 1 some other info 1 foo bar 1 some info 2 some cool info 2 some other info 2 foo bar 2 我想建立一个循环来完成这项工作,并希望: data1 = line1 data2 = line2 data3 = line3 data4 = line4 # do stuff with the data 1,2,
some info 1
some cool info 1
some other info 1
foo bar 1
some info 2
some cool info 2
some other info 2
foo bar 2
我想建立一个循环来完成这项工作,并希望:
data1 = line1
data2 = line2
data3 = line3
data4 = line4
# do stuff with the data 1,2,3,4
data1 = line7
data2 = line8
data3 = line9
data4 = line10
# do stuff with the data 1,2,3,4
对文本文件中的所有内容执行此操作。有人有什么想法吗?手动执行十行是可以的,但是当大约11000行时,我宁愿自动执行。在
文件上使用对象将非常完美地完成这项工作。虽然这没有考虑到空行,但在另一个答案中有一个很好的技巧来处理这个问题谢谢。这正是我要找的。
File.open('/tmp/lines', 'r').each_slice(6) do |group|
# remove newlines
group.map! {|item| item.chomp }
data1, data2, data3, data4 = group
# do something with the variables...
end
input = <<-EOF
some info 1
some cool info 1
some other info 1
foo bar 1
some info 2
some cool info 2
some other info 2
foo bar 2
EOF
input.lines.reject(&:empty?).each_slice(4) do |data|
puts data[0]
puts data[1]
puts data[2]
puts data[3]
puts '-----'
end
some info 1
some cool info 1
some other info 1
foo bar 1
-----
some info 2
some cool info 2
some other info 2
foo bar 2
-----