import subprocess import sys iteration = sys.argv[1] filenames = sys.argv[2:] total_score = 0.0 num_scores = 0 for filename in filenames: grep_cmd = ["grep", "Dev score.* %s[)]" % iteration, "-A1", filename] grep_result = subprocess.run(grep_cmd, stdout=subprocess.PIPE, encoding="utf-8") grep_result = grep_result.stdout.strip() if not grep_result: max_cmd = ["grep", "Dev score", filename] max_result = subprocess.run(max_cmd, stdout=subprocess.PIPE, encoding="utf-8") max_result = max_result.stdout.strip() if not max_result: print("{}: no result".format(filename)) else: max_it = max_result.split("\n")[-1] max_it = int(max_it.split(":")[0].split("(")[-1][:-1]) epoch_finished_string = "Epoch %d finished" % max_it finish_cmd = ["grep", epoch_finished_string, filename] finish_result = subprocess.run(finish_cmd, stdout=subprocess.PIPE, encoding="utf-8") finish_result = finish_result.stdout.strip() finish_time = finish_result.split(" INFO")[0] print("{}: no result. max iteration: {} finished at {}".format(filename, max_it, finish_time)) else: grep_result = grep_result.split("\n")[-1] score = float(grep_result.split(":")[-1]) best_iteration = int(grep_result.split(":")[-2][-6:-1]) print("{}: {} ({})".format(filename, score, best_iteration)) total_score += score num_scores += 1 if num_scores > 0: avg = total_score / num_scores print("Avg: {}".format(avg))