Python 解析日志生成excel报表
''' This file is to parse during-timebetween some operations from log.'''
import csv
file_path = "C:\\Users\\xxxxxx\\"
file_name = "xxxxxxx.txt"
file_text = file_path + file_name
beginConnect = " Enter ConnectToServer"
endConnect = "AuthDlg::OnInitDialog : Enter Init."
beginLogin = "AuthDlg::OnOk : Enter Windows_Password:Ok."
endLogin = "Notifying listener" ############need change
beginLaunchWin = "LaunchItem::Connect : Enter ConnectToItem"
endLaunchWin = "Ready to send request to" ###################need change
parseTable = dict()
resultTable = dict()
def InitParseTable():
parseTable = dict()
parseTable = dict()
parseTable = dict()
resultTable = dict()
resultTable = dict()
resultTable = dict()
resultTable['Action'] = "ConnectToServer"
resultTable['Action'] = "LogInServer"
resultTable['Action'] = "LaunchWin"
parseTable['begin'] = beginConnect
parseTable['end'] = endConnect
parseTable['begin'] = beginLogin
parseTable['end'] = endLogin
parseTable['begin'] = beginLaunchWin
parseTable['end'] = endLaunchWin
def GetTime(_pos, _count, content):
strParse = content.split()
timeParse = strParse.split('+')
resultTable = timeParse
def RunJob():
fp = open(file_text,"r")
content = fp.readline()
_pos = 0
_count = 'begin'
while content:
if content.find(parseTable) >= 0:
GetTime(_pos, _count, content)
if _count == 'begin':
_count = 'end'
else:
_count = 'begin'
_pos = _pos + 1
if _pos > 2:
break
content = fp.readline()
def CountTime(beginTime, endTime):
b = beginTime.split(":")
e = endTime.split(":")
countTime = (int(e) - int(b)) * 3600 + (int(e) - int(b)) * 60 + round((float(e) - float(b)), 3)
return countTime
def PrintResult():
for i in resultTable:
resultTable['during'] = CountTime(resultTable['begin'], resultTable['end'])
print resultTable
def GenerateCSV():
csvfile = file('DuringTimeOfLog.csv', 'wb')
writer = csv.writer(csvfile)
writer.writerow(['Action', 'BeginTime','EndTime','DuringTime(seconds)'])
for i in resultTable:
row_data = [(resultTable['Action'], resultTable['begin'], resultTable['end'], resultTable['during'])]
writer.writerows(row_data)
csvfile.close()
if __name__ == "__main__":
InitParseTable()
RunJob()
PrintResult()
GenerateCSV()
页:
[1]