鱼C论坛

 找回密码
 立即注册
查看: 1317|回复: 15

[已解决]用idle打开了文件,但试图读取时产生如下错误,请神指点,谢谢

[复制链接]
发表于 2020-6-9 17:15:04 | 显示全部楼层 |阅读模式

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

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

x
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte
最佳答案
2020-6-9 17:43:00
本帖最后由 _荟桐_ 于 2020-6-9 17:44 编辑

用记事本打开文件
然后另存为,看文件的编码
然后打开的时候open(文件名,打开方式,encoding=文件编码)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-9 17:16:55 | 显示全部楼层
编码问题
发完整代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 17:22:49 | 显示全部楼层
qiuyouzhi 发表于 2020-6-9 17:16
编码问题
发完整代码

f = open('/Users/jimuerga/Desktop/OpenMe.txt')
>>> f.read()
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    f.read()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 17:24:54 | 显示全部楼层
jimuerga 发表于 2020-6-9 17:22
f = open('/Users/jimuerga/Desktop/OpenMe.txt')
>>> f.read()
Traceback (most recent call last):

open加个参数:
encoding = "utf-8"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 17:33:02 | 显示全部楼层

>>> f = open('/Users/jimuerga/Desktop/OpenMe.txt',encoding = "utf-8")
>>> f.read()
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    f.read()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 17:33:43 | 显示全部楼层
jimuerga 发表于 2020-6-9 17:33
>>> f = open('/Users/jimuerga/Desktop/OpenMe.txt',encoding = "utf-8")
>>> f.read()
Traceback (mo ...

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

使用道具 举报

 楼主| 发表于 2020-6-9 17:40:43 | 显示全部楼层
长期使用Windows操作系统的朋友很容易被扩展名所误导,认为扩展名决定文件类型,其实这种观念是错误的!

其实这就跟一个姓张的坏人,尽管把名字改为了“张好人”,但他还是一个坏人是一个道理的^_^

关于文件的扩展名,初学者容易走进的误区:

误区一:文件扩展名是一个文件的必要构成部分

一个文件可以有或没有扩展名,对于打开文件操作,没有扩展名的文件需要选择程序去打开它,有扩展名的文件会自动用设置好的程序(如有)去尝试打开(是“尝试打开”,而不是“打开”的原因参看下面的第2个误区),文件扩展名是一个常规文件的构成部分,但一个文件并不一定需要一个扩展名。

误区二:文件扩展名表明了该文件是何种类型

文件扩展名可以人为设定,扩展名为TXT的文件有可能是一张图片,同样,扩展名为M-P3的文件,依然可能是一个视频。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 17:41:33 | 显示全部楼层

长期使用Windows操作系统的朋友很容易被扩展名所误导,认为扩展名决定文件类型,其实这种观念是错误的!

其实这就跟一个姓张的坏人,尽管把名字改为了“张好人”,但他还是一个坏人是一个道理的^_^

关于文件的扩展名,初学者容易走进的误区:

误区一:文件扩展名是一个文件的必要构成部分

一个文件可以有或没有扩展名,对于打开文件操作,没有扩展名的文件需要选择程序去打开它,有扩展名的文件会自动用设置好的程序(如有)去尝试打开(是“尝试打开”,而不是“打开”的原因参看下面的第2个误区),文件扩展名是一个常规文件的构成部分,但一个文件并不一定需要一个扩展名。

误区二:文件扩展名表明了该文件是何种类型

文件扩展名可以人为设定,扩展名为TXT的文件有可能是一张图片,同样,扩展名为M-P3的文件,依然可能是一个视频。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 17:43:00 | 显示全部楼层    本楼为最佳答案   
本帖最后由 _荟桐_ 于 2020-6-9 17:44 编辑

用记事本打开文件
然后另存为,看文件的编码
然后打开的时候open(文件名,打开方式,encoding=文件编码)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 17:48:13 | 显示全部楼层
_荟桐_ 发表于 2020-6-9 17:43
用记事本打开文件
然后另存为,看文件的编码
然后打开的时候open(文件名,打开方式,encoding=文件编码)

文件的编码在哪理可以看到呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 17:50:14 | 显示全部楼层
jimuerga 发表于 2020-6-9 17:48
文件的编码在哪理可以看到呢?

记事本打开
另存为
然后看编码那一栏里显示的是什么

建议用pycharm,或vscode这样的编辑器,会在右下角显示编码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 17:54:44 | 显示全部楼层
好的,谢谢,我试试,我好像没有安装 pycharm编辑器
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 18:01:52 | 显示全部楼层
jimuerga 发表于 2020-6-9 17:54
好的,谢谢,我试试,我好像没有安装 pycharm编辑器

显示扩展名设置:

                               
登录/注册后可看大图


储存文本设置:

                               
登录/注册后可看大图


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 18:05:22 | 显示全部楼层
jimuerga 发表于 2020-6-9 17:54
好的,谢谢,我试试,我好像没有安装 pycharm编辑器

然后在 open 里带上 encoding ='utf-8' 即可正常打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 18:46:52 | 显示全部楼层
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte,说的是用utf-8解码错误,所以试试看gbk解码:
f = open('/Users/jimuerga/Desktop/OpenMe.txt',encoding='gbk')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-9 19:37:42 | 显示全部楼层
txxcat 发表于 2020-6-9 18:46
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte,说的是用 ...

非常感谢,可能保存的文本编码就是用'gbk'的缘故,改了编码方式之后就可以用了。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 19:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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