鱼C论坛

 找回密码
 立即注册
查看: 3087|回复: 5

[已解决]IDLE为什么打不开这个.py

[复制链接]
发表于 2023-1-8 12:38:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
内容:
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_____________ ]
[_____[确认]_______|
然后:
_________________________
[编码错误:                             ]
[无法使用 utf-8 编码打开此文件]
[_____[确认]______________ ]  
我自己写的记事本和电脑自带的记事本都能打开.....
最佳答案
2023-1-8 14:02:50
KeyError 发表于 2023-1-8 13:58
在IDLE上拷贝了记事本的内容,解决了。

因为中文版的Windows系统使用的默认编码是gbk编码,而Python3使用的是utf-8编码,所以,当你用IDLE打开用Windows记事本编辑的文件时,就会出现编码错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-8 13:36:51 | 显示全部楼层
你这个代码是在Windows自带的记事本上编写的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-8 13:58:31 | 显示全部楼层
本帖最后由 KeyError 于 2023-1-8 14:00 编辑
临时号 发表于 2024-5-5 09:48
你这个代码是在Windows自带的记事本上编写的吗

在IDLE上拷贝了记事本的内容,解决了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-8 14:02:50 | 显示全部楼层    本楼为最佳答案   
KeyError 发表于 2023-1-8 13:58
在IDLE上拷贝了记事本的内容,解决了。

因为中文版的Windows系统使用的默认编码是gbk编码,而Python3使用的是utf-8编码,所以,当你用IDLE打开用Windows记事本编辑的文件时,就会出现编码错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 编码,这样打开就不会导致此时出现的编码错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-30 17:08:08 | 显示全部楼层
用记事本打开,然后另存为--编码选择utf-8

评分

参与人数 1荣誉 +4 鱼币 +3 贡献 +3 收起 理由
高山 + 4 + 3 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 19:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表