You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tkinter保存对话框中获取输入的文件名

解决Tkinter保存文件对话框获取文件名的问题

你的问题出在对asksaveasfilename的返回值理解上:这个函数直接返回用户输入/选择的完整文件名(包含路径),它不是Tkinter控件,没有.get()方法,所以调用wfile.get()会报错。

修正后的代码如下:

def save_file():
    files = [('Text Document','*.txt'), ('Python Files','*.py')]
    # 获取用户输入的文件名,自动添加默认后缀(如果用户没加)
    filename = asksaveasfilename(filetypes=files, defaultextension=".txt")
    
    # 判断用户是否取消了对话框,避免空字符串导致报错
    if not filename:
        return
    
    # 使用with语句自动关闭文件,更安全简洁
    with open(filename, "w") as wrfile:
        wrfile.write(txt.get(1.0, END))

关键说明:

  • 当用户输入abc时,asksaveasfilename会自动加上.txt后缀(因为设置了defaultextension=".txt"),返回的filename是类似/xxx/abc.txt的完整路径;如果用户输入abc.txt,则直接返回带路径的abc.txt。
  • 必须判断filename是否为空:如果用户点击对话框的“取消”按钮,函数会返回空字符串,此时直接返回避免后续打开空文件名出错。

内容的提问来源于stack exchange,提问作者Kishan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:03:19