UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 128: illegal multibyte sequence
说到底是open()使用方法。
原本程序是这样的:(重点看第4行)
from tkinter import * import os def openFile(): f = open('D:\Pythoncharmprojccts\SC\main_window.py',mode='r') while True: data = f.readline() if not data : break print(data) f.close()#关闭文件 root = Tk() root.title('openfile') root.geometry('500x500') menuBar = Menu(master=root)#将menuBar添加到root窗口中,新建 root.configure(menu=menuBar)#通过configure方法绑定,添加 fileMenu = Menu(master=menuBar,tearoff=0)#新建teroff=0,下拉菜单去掉虚线,不用单独的为一个窗口 editMenu = Menu(menuBar,tearoff=0) menuBar.add_cascade(label='File',menu=fileMenu)#添加 menuBar.add_cascade(label='Edit',menu=editMenu) newMenu = Menu(fileMenu) openMenu = Menu(fileMenu) saveMenu = Menu(fileMenu) copyMenu = Menu(editMenu) markMenu = Menu(editMenu) pasteMenu = Menu(editMenu)#新建 fileMenu.add_command(label='New') fileMenu.add_command(label='Open',command=openFile) fileMenu.add_command(label='Save') editMenu.add_command(label='Copy') editMenu.add_command(label='Mark') editMenu.add_command(label='Paste')#添加 # doc = Text(root) # doc.pack() root.mainloop()
更改方法:
需要更改第4行新加encoding='UTF-8'。
第4行换为
f = open('D:\Pythoncharmprojccts\SC\main_window.py',mode='r',encoding='UTF-8')