if confirm: Path('save').mkdir(parents=True, exist_ok=True) SaveService().save_data('save/save.json', data.box) root.destroy() elif confirm is None: pass else: root.destroy() def on_saving(event): Path('save').mkdir(parents=True, exist_ok=True) SaveService().save_data('save/save.json', data.box) if __name__ == "__main__": root = tkinter.Tk() data = Data() # load dummies random number of decks and cards if len(sys.argv) >= 2 and sys.argv[1] == "dataload": data.box = DataDummiesLoader().box_load() else: data.box = SaveService().get_json_box(Path("save/save.json")) app = AnkiLike(master=root) root.bind('<Control-s>', on_saving) root.protocol("WM_DELETE_WINDOW", on_closing) app.mainloop()