KeyError 发表于 2023-1-8 12:38:30

IDLE为什么打不开这个.py

内容:
from tkinter import *
#python3.8.1

class GO_TYPE:
    putager = 0
    tget = 1
    tput = 2
    shget = 3
    shput = 4
class TES:
    def main():
      tes = TES()
    cp = None
    bpanel = None
    cancel = None
    blabel = None
    step = GO_TYPE.putager

    def __init__(self):
      self.root = Tk()
      self.root.title("虎吃羊")
      self.frame = Frame(self.root, width=1200, height=600)
      self.frame.grid(row=0,column=0)

      TES.bpanel = Frame(self.frame, width=600, height=600)
      TES.cancel = Button(TES.bpanel, text="撤销操作", command=self.eventdown)
      TES.bpanel.place(relx=0.75, rely=0.5, anchor=CENTER, relheight=1.0, relwidth=0.5)
      TES.cancel.grid(row=0,column=0,rowspan=10)
      
      cp = CheckPanel()
    class CheckPanel:
      pass
    def eventdown(self):
      if step == GO_TYPE.tput:
            step = GO_TYPE.tget
            print("撤销成功,您又可以拿起您的大老虎啦")
      elif step == GO_TYPE.shput:
            step = GO_TYPE.shget
            print("撤销成功,您又可以拿起您的小绵羊啦")
TES.main()
打开时:
---------------------------
|请确认使用什么编码:|

_______|
然后:
_________________________
[编码错误:                           ]
[无法使用 utf-8 编码打开此文件]
______________ ]
我自己写的记事本和电脑自带的记事本都能打开.....

临时号 发表于 2023-1-8 13:36:51

你这个代码是在Windows自带的记事本上编写的吗

KeyError 发表于 2023-1-8 13:58:31

本帖最后由 KeyError 于 2023-1-8 14:00 编辑

临时号 发表于 2024-5-5 09:48
你这个代码是在Windows自带的记事本上编写的吗
在IDLE上拷贝了记事本的内容,解决了。

临时号 发表于 2023-1-8 14:02:50

KeyError 发表于 2023-1-8 13:58
在IDLE上拷贝了记事本的内容,解决了。

因为中文版的Windows系统使用的默认编码是gbk编码,而Python3使用的是utf-8编码,所以,当你用IDLE打开用Windows记事本编辑的文件时,就会出现编码错误

Twilight6 发表于 2023-1-8 18:06:03


简单来说,文件的读取编码和写入时的编码不一致,导致文件打开失败

utf-8 中文一般使用 3 个字节(生僻字甚至更多),gbk 中文一般使用 2 个字节

当你文本中有中文时,打开文件的编码不一致就会导致字符解码错误,文件打不开或者打开后是乱码

所以在打开文件时,最好将文件统一好编码,使用 UTF-8 编码的,就使用 UTF-8 读取,GBK 的 就使用 GBK 读取

如果你的操作系统是 Windows,那么利用电脑自带的记事本打开文件时,可以选择另存为,在弹出的另存为路径窗口的右下角可以设置保存的文件编码

一般系统默认 ANSI 编码,也就是默认使用系统默认编码(中文系统 ANSI 一般是 GBK,外文一般是 UTF-8),你可以将文件另存为选择 UTF-8 编码,这样打开就不会导致此时出现的编码错误

歌者文明清理员 发表于 2023-1-30 17:08:08

用记事本打开,然后另存为--编码选择utf-8
页: [1]
查看完整版本: IDLE为什么打不开这个.py