老师出现以下报错:查看了一些解决方法,说可以在open文件时加encoding=gbk,但是askopenfile的参数中没有编码这个参数,请问怎么解决
UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 8: illegal multibyte sequence
#coding=cp936
from tkinter import *
from tkinter.filedialog import *
from tkinter.colorchooser import *
class Application(Frame):
def __init__(self, master=None):
super(Application, self).__init__(master)
self.master = master
self.filename = None
self.nt = None
self.pack()
self.notebook()
def notebook(self):
self.nt = Text(self.master, width=100, height=30, font=("黑体", 20))
self.nt.pack()
mainmenu = Menu(self.master)
menu1 = Menu(mainmenu, tearoff=0)
menu2 = Menu(mainmenu, tearoff=0)
menu3 = Menu(mainmenu, tearoff=0)
menu4 = Menu(mainmenu, tearoff=0)
self.master["menu"] = mainmenu
mainmenu.add_cascade(label="文件", menu=menu1)
mainmenu.add_cascade(label="编辑", menu=menu2)
mainmenu.add_cascade(label="工具", menu=menu3)
mainmenu.add_cascade(label="帮助", menu=menu4)
menu1.add_command(label="新建", accelerator="ctrl+n", command=self.newfile)
menu1.add_command(label="打开", accelerator="ctrl+o", command=self.openfile)
menu1.add_command(label="保存", accelerator="ctrl+s", command=self.savefile)
menu1.add_separator()
menu1.add_command(label="退出", accelerator="ctrl+q", command=self.quit)
menu3.add_command(label="颜色选择", command=self.opencolor)
def newfile(self):
pass
def openfile(self):
with askopenfile(title="打开文件", initialdir="D:/", filetypes=[("文本文档", ".txt")]) as f:
self.nt.insert(INSERT, f.read())
self.filename = f.name
print(self.filename)
print(f)
def savefile(self):
pass
def quit(self):
self.master.quit()
def opencolor(self):
pass
if __name__ == '__main__':
root = Tk()
root.title("测试菜单")
# root.geometry("200x200+200+200")
Application(master=root)
root.mainloop()
