阅读文件内容并在Ruby中处理数据

时间:2017-06-19 07:59:14

标签: ruby

如何逐个处理以insert开头的行之间的数据。我的下面的代码给出了第1部分的输出,如果有100个部分被delete分隔,那该怎么办。

就像我想让第1部分排列数据然后占据第2部分(File Id)等等。如果有更好的方法,我一定会听。感谢。

输入文件(File Id:

File ID

代码

input.txt

2 个答案:

答案 0 :(得分:1)

您可以创建一个方法来抽象文件的读取并将其拆分为多个部分:

def split_by_file_id(file)
  lines = []
  id = nil
  File.foreach(file).with_index do |line, line_num|
    if line =~ /^File Id: (.*)/m
      yield id, lines if id
      lines = []
      id = $1
    else
      lines << line if id
    end      
  end
  yield id, lines if id
end

# Code to process each section...
split_by_file_id("input.txt") do |id, lines|
  lines.each do |line|
    # do something...
  end
end

答案 1 :(得分:0)

file = File.open("input.txt", "rb")
contents = file.read.split("File Id:")
contents.shift

现在你可以contents.each循环播放它。