import re def log_parser(log_file): prefix = "Version" pattern_types = '^(GDBM|Block|Compatibility|DB|Cloexec|Wordwrap|gdbmtool|Database+?).*' regex_type = re.compile(pattern_types, re.MULTILINE) pattern = '^(FAIL|PASS|SKIP+?): (.+)' regex = re.compile(pattern, re.MULTILINE) case_list = dict() test_log = open(log_file, 'r') line = test_log.readline() while line: # match test suite name matchs_type = regex_type.search(line) if matchs_type: groups_type = matchs_type.groups() prefix = groups_type[0] # match case and result matchs = regex.search(line) if matchs: groups = matchs.groups() case_name = prefix + " " + groups[1] case_list[case_name] = [case_name, groups[0], ""] line=test_log.readline() test_log.close() return case_list