for col, x in enumerate([int(s) for s in line.split(" ")]): vals[row_idx][col] = x row_idx += 1 return vals def make_output(file_path, occur_dict): with open(file_path, "w") as fdw: for k, v in sorted(occur_dict.items()): output_line = "{} | {}\n".format(k, v["n"]) if v["trails"] is not None: output_line += " TRAILS: {}\n".format(v["trails"]) fdw.write(output_line) # for trails mode # --trails -output res/output_trails.txt if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("-input", nargs='?', default="res/input.txt") parser.add_argument("-output", nargs='?', default="res/output.txt") parser.add_argument("--trails", action='store_true') args = parser.parse_args() vals = vals_from_file(args.input) pyramid = Pyramid(vals) pyramid.calc_path_sums(include_trails=args.trails) make_output(args.output, pyramid._path_sums)