# # this is a parser function specially designed for the 'libxml2.log' # import re def log_parse(log_file): # set up rule for regex reObj = re.compile('^(PASS|FAIL+?): (.+)', re.MULTILINE) # init a dictionary, it stores the return result case_list = dict() # open file test_log = open(log_file, 'r') # start to read the new line line = test_log.readline() while line: # checking regex status in line matchs = reObj.search(line) # if the line fits the regex rule if matchs: # spliting elements into a tuple groups = matchs.groups() # then just add a new key naming after case_name, along with its values case_list[groups[1]] = [groups[1], groups[0], ""] # jump out if-else, read next line line = test_log.readline() test_log.close() return case_list