我已经创建了一个Tkinter应用程序,并有一个使用cPickle的保存功能,保存文件。然而,我正在寻找一个保存功能(或自动保存),如果文件已经创建,则不会弹出保存对话框。我正在寻找如何做到这一点的建议。我想检查一下这个函数以前是否被调用过,如果调用过,就绕过这个对话框,但是如果用户在保存之前取消了这个过程,我想这会破坏这个选项。我是否应该使用os.path.isfile来查看该文件是否存在?
def file_save_as(saved):
"""Save .gsd binary file"""
designer_save_file = saved
if not designer_save_file:
designer_save_file = filedialog.asksaveasfile(
initialdir="C:/", mode="w",
defaultextension=".db",
filetypes=(("GSD", "*.gsd"), ("All files", "*"))
)
if designer_save_file is None:
return
else:
gsd_save_name = designer_save_file.name
basename = os.path.basename(gsd_save_name)
path = os.path.dirname(gsd_save_name)
gsd_data = {"Data"}
pk.dump(gsd_data, open(path + "/" + basename, "wb"))
full_path = path + "/" + basename
return full_path
save_path = file_save_as(None)
file_save_as(save_path)
print(save_path)
# Hotkey to save current gsd portal progress
keyboard.add_hotkey("ctrl+s", lambda: file_save_as(save_path))发布于 2020-11-26 12:52:14
感谢大家的帮助。我最终创建了一个如上所述的标志,然后在该路径中传递。效果很好。
def auto_save():
if os.path.isfile(file_flag):
save_data(file_flag)
else:
file_save_as()https://stackoverflow.com/questions/64741793
复制相似问题