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

Python Tkinter开发文本编辑器保存文件报File Name Not Valid如何解决

Tkinter文本编辑器保存报错解决方案

错误根源

你的代码中文件对话框的通配符格式配置错误,同时默认扩展名设置不合理,共同触发了文件名合法性校验失败:

  • 所有filetypes参数中,扩展名前漏写了英文句点.,例如你写的*txt不符合系统通配符规则,正确格式应为*.txt
  • asksaveasfilename的defaultextension设为.*会导致系统无法自动补全合法扩展名,进一步触发校验错误

修复后的核心代码修改

1. open_file函数修改

def open_file(): 
     my_text.delete("1.0", END)
     # 修正filetypes的通配符格式,补全.
     text_file = filedialog.askopenfilename(title="Open File", filetypes=(("Text Files", "*.txt"), ("HTML Files", "*.html")))  
     name = text_file 
     status_bar.config(text=name) 
     text_file = open(text_file, 'r')
     stuff = text_file.read() 
     my_text.insert(END, stuff) 
     text_file.close() 

2. save_as_file函数修改

def save_as_file(): 
    # 修正defaultextension和filetypes格式,默认使用txt作为保存扩展名
    text_file = filedialog.asksaveasfilename(defaultextension=".txt", title="Save File", initialdir="C:/gui/", filetypes=(("Text Files", "*.txt"), ("HTML Files", "*.html"))) 
    if text_file: 
        name = text_file 
        name = name.replace("C:/gui/", "") 
        root.title(f'{name} - NewNotepad') 
        text_file = open(text_file, 'w') 
        text_file.write(my_text.get(1.0, END))  
        text_file.close() 

补充说明

如果你需要支持保存时自动匹配选中的文件类型补全扩展名,可以额外添加逻辑读取用户选中的文件类型动态修改defaultextension,上述修改已经可以解决「File Name Not Valid」的报错问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:27:05