Ruby - parsing a text file

前端 未结 2 908
眼角桃花
眼角桃花 2020-12-30 04:59

I am pretty new to Ruby and have been trying some really basic text parsing. I am now however trying to parse a little bit more of a complicated file and then push it out in

相关标签:
2条回答
  • 2020-12-30 05:50

    Here's a general idea for you to start with

    File.open( thefile ).each do |line|
        print line without the new line if line does not contain  /--+/
        if line contains /--+/
            print line with a new line
        end
    end
    
    0 讨论(0)
  • 2020-12-30 05:54

    Here's one complete solution. Note that it's very sensitive to the file structure!

    out_file = File.open('your_csv_file.csv', 'w')
    out_file.puts "Title,Publisher,Publishedate,Number1,Number2,Number3,Category"
    the_line = []
    in_title = false
    IO.foreach('your_file_name') do |line|
      if line =~ /^-+$/
        out_file.puts the_line.join(',')
        the_line = []
      elsif line =~ /^Title$/
        in_title = true
      elsif line =~ /^(?:Publishe(?:r|d Date)|Number\d|Category):\s+(.*?)$/
        the_line += [$1]
        in_title = false
      elsif in_title
        the_line[0] = (the_line.empty? ?  line.chomp : "\"#{the_line[0]} #{line.chomp}\"")
      else
        puts "Error: don't know what to do with line #{line}"
      end
    end
    out_file.close
    
    0 讨论(0)
提交回复
热议问题