如何让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
相关产品推荐
相关产品推荐

