# -*- encoding:utf-8 -*- import os from Tkinter import * from tkinter import messagebox class CText: def __init__(self,master): self.master = master self.Menu() def WriteFunc(self): # 获取文本框中的内容,从0行下标0开始到结束 self.content = self.textmodel.get(0.0,END) with open(self.fname, \'w\') as fobj: fobj.write(self.content.encode(\'utf-8\')) messagebox.showinfo(\'成功\',\'保存成功到文件\') fobj.close() def ReadFunc(self): self.fname = self.model.get() # 文件处理,如果文件不存在,就创建一个 if not os.path.exists(self.fname): messagebox.showwarning(\'警告\',\'文件不存在,将自动创建文件!\') with open(self.fname, \'r\') as fobj: self.content = fobj.read() # 删除文本框中的内容 self.textmodel.delete(0.0,END) # 插入读取到的内容 self.textmodel.insert(END,self.content) fobj.close() def Menu(self): # 创建Entry组件 self.model = Entry(self.master,relief=SUNKEN, font=(\'Arial\', 20),width=40) self.model.pack(side=TOP,pady=10) # 创建按钮 Button(self.master,text=\'打开\',command=self.ReadFunc).pack(fill=X,expand=YES) Button(self.master,text=\'保存\',command=self.WriteFunc).pack(fill=X,expand=YES) self.textmodel = Text(self.master) self.textmodel.pack() if __name__ == \'__main__\': root = Tk() root.title(\'文本编辑器\') CText(root) root.mainloop()
但是有个bug,只能显示utf-8编码文件的中文,其他都是乱码。