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

如何让Python中tkinter的asksaveasfile()以UTF-8编码保存文件

实现方法

tkinter的asksaveasfile()方法会将未识别的关键字参数透传给Python内置的open()函数,直接在调用时传入encoding='utf-8'参数,即可指定保存文件采用UTF-8编码。

修改后的代码如下:

sveas = f.asksaveasfile(encoding='utf-8')
sveas.write(code.get(1.0, END))
sveas.close()

优化建议

  • 原代码中写入内容时包裹的f-string属于冗余写法,code.get(1.0, END)本身返回值就是字符串,无需额外格式化。
  • 建议增加非空判断,避免用户点击保存对话框的取消按钮返回None时,调用write()、close()抛出属性错误:
sveas = f.asksaveasfile(encoding='utf-8')
if sveas:
    sveas.write(code.get(1.0, END))
    sveas.close()
  • 如果你需要保存为Windows平台默认带BOM的UTF-8格式,可将编码参数替换为encoding='utf-8-sig',跨平台通用场景使用标准utf-8即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:24:41