保存vs另存为建议Tkinter

2024-05-26 16:26:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经创建了一个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))

Tags: 文件path函数namenoneifossave
1条回答
网友
1楼 · 发布于 2024-05-26 16:26:34

谢谢大家的帮助。我最终创建了一个如上所述的标志,然后在该路径中传递。工作完美

def auto_save():
if os.path.isfile(file_flag):
    save_data(file_flag)
else:
    file_save_as()

相关问题 更多 >

    热门问题