python实例31[解析buildlog]

 

简单地解析VisualStudio的buildlog:(有的时候log文件太长,但是我们只是关心warning和error, 通过该程序可以直接得到所有的warning和error的行)

import  re

warninglist 
=  []
warninglist.append(
" warning C\d{4} " )

errorlist 
=  []
errorlist.append(
" error LNK\d{4} " )
errorlist.append(
" error C\d{4} " )

def  Parse(logfile, regexlist):
  resultlines 
=  []
  with open(logfile, 
" r " ) as log:
    
for  line  in  log:
      
for  regex  in  regexlist:
        m 
=  re.search(regex, line)
        
if  m:
          resultlines.append(line)
  
return  resultlines

def  ParseWarning(logfile):
  warnings 
=  []
  warnings 
=  Parse(logfile, warninglist)
  
return  warnings
  
def  ParseError(logfile):
  errors 
=  []
  errors 
=  Parse(logfile, errorlist)
  
return  errors

ws 
=  ParseWarning( " buildlog.txt " )
print " warnings: "   +  str(len(ws)))
for  w  in  ws:
  
print  (w)
es 
=  ParseError( " buildlog.txt " )
print " errors: "   +  str(len(es)))
for  e  in  es:
  
print (e)

 

继续改进中。。。

 

完!

你可能感兴趣的:(python实例31[解析buildlog])