|
''' This file is to parse during-time between some operations from log.
'''
import csv
file_path = "C:\\Users\\xxxxxx\\"
file_name = "xxxxxxx.txt"
file_text = file_path + file_name
beginConnect = "[User] Enter ConnectToServer"
endConnect = "AuthDlg::OnInitDialog : [User] Enter Init."
beginLogin = "AuthDlg::OnOk : [User] Enter Windows_Password:Ok."
endLogin = "Notifying listener" ############need change
beginLaunchWin = "LaunchItem::Connect : [User] Enter ConnectToItem"
endLaunchWin = "Ready to send request to" ###################need change
parseTable = dict()
resultTable = dict()
def InitParseTable():
parseTable[0] = dict()
parseTable[1] = dict()
parseTable[2] = dict()
resultTable[0] = dict()
resultTable[1] = dict()
resultTable[2] = dict()
resultTable[0]['Action'] = "ConnectToServer"
resultTable[1]['Action'] = "LogInServer"
resultTable[2]['Action'] = "LaunchWin"
parseTable[0]['begin'] = beginConnect
parseTable[0]['end'] = endConnect
parseTable[1]['begin'] = beginLogin
parseTable[1]['end'] = endLogin
parseTable[2]['begin'] = beginLaunchWin
parseTable[2]['end'] = endLaunchWin
def GetTime(_pos, _count, content):
strParse = content.split()
timeParse = strParse[1].split('+')
resultTable[_pos][_count] = timeParse[0]
def RunJob():
fp = open(file_text,"r")
content = fp.readline()
_pos = 0
_count = 'begin'
while content:
if content.find(parseTable[_pos][_count]) >= 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[0]) - int(b[0])) * 3600 + (int(e[1]) - int(b[1])) * 60 + round((float(e[2]) - float(b[2])), 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() |
|
|