import dbm import changeme team_vals = {} exploit_vals = {} try: with dbm.ndbm.open(changeme.db_file_path) as f: for k in f.keys(): flag = k ret_val, team_id, exploit = f[flag].decode().split(",") ret_val = int(ret_val) team_id = int(team_id) if team_id not in team_vals: team_vals[team_id] = [0] * len(changeme.MESSAGES) if exploit not in exploit_vals: exploit_vals[exploit] = [0] * len(changeme.MESSAGES) team_vals[team_id][ret_val] += 1 exploit_vals[exploit][ret_val] += 1 except dbm.error as ex: print("No data(base) exists yet.") exit(1) def make_row(entries): column_width = 3 + max(map(len, changeme.MESSAGES)) return "|" + "|".join([x.ljust(column_width, " ") for x in entries]) + "|" header = make_row(["team_id"] + changeme.MESSAGES) print("-" * len(header)) print(header) print("-" * len(header)) for t in sorted(team_vals.keys()): print(make_row([str(t)] + list(map(str, team_vals[t])))) print("-" * len(header)) print(header) print("-" * len(header)) for t in sorted(exploit_vals.keys()): print(make_row([str(t)] + list(map(str, exploit_vals[t])))) print("-" * len(header))