用idle打开了文件,但试图读取时产生如下错误,请神指点,谢谢
(result, consumed) = self._buffer_decode(data, self.errors, final)UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte 编码问题
发完整代码 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 jimuerga 发表于 2020-6-9 17:22
f = open('/Users/jimuerga/Desktop/OpenMe.txt')
>>> f.read()
Traceback (most recent call last):
open加个参数:
encoding = "utf-8" qiuyouzhi 发表于 2020-6-9 17:24
open加个参数:
>>> 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 jimuerga 发表于 2020-6-9 17:33
>>> f = open('/Users/jimuerga/Desktop/OpenMe.txt',encoding = "utf-8")
>>> f.read()
Traceback (mo ...
发文件内容 长期使用Windows操作系统的朋友很容易被扩展名所误导,认为扩展名决定文件类型,其实这种观念是错误的!
其实这就跟一个姓张的坏人,尽管把名字改为了“张好人”,但他还是一个坏人是一个道理的^_^
关于文件的扩展名,初学者容易走进的误区:
误区一:文件扩展名是一个文件的必要构成部分
一个文件可以有或没有扩展名,对于打开文件操作,没有扩展名的文件需要选择程序去打开它,有扩展名的文件会自动用设置好的程序(如有)去尝试打开(是“尝试打开”,而不是“打开”的原因参看下面的第2个误区),文件扩展名是一个常规文件的构成部分,但一个文件并不一定需要一个扩展名。
误区二:文件扩展名表明了该文件是何种类型
文件扩展名可以人为设定,扩展名为TXT的文件有可能是一张图片,同样,扩展名为M-P3的文件,依然可能是一个视频。 qiuyouzhi 发表于 2020-6-9 17:33
发文件内容
长期使用Windows操作系统的朋友很容易被扩展名所误导,认为扩展名决定文件类型,其实这种观念是错误的!
其实这就跟一个姓张的坏人,尽管把名字改为了“张好人”,但他还是一个坏人是一个道理的^_^
关于文件的扩展名,初学者容易走进的误区:
误区一:文件扩展名是一个文件的必要构成部分
一个文件可以有或没有扩展名,对于打开文件操作,没有扩展名的文件需要选择程序去打开它,有扩展名的文件会自动用设置好的程序(如有)去尝试打开(是“尝试打开”,而不是“打开”的原因参看下面的第2个误区),文件扩展名是一个常规文件的构成部分,但一个文件并不一定需要一个扩展名。
误区二:文件扩展名表明了该文件是何种类型
文件扩展名可以人为设定,扩展名为TXT的文件有可能是一张图片,同样,扩展名为M-P3的文件,依然可能是一个视频。 本帖最后由 _荟桐_ 于 2020-6-9 17:44 编辑
用记事本打开文件
然后另存为,看文件的编码
然后打开的时候open(文件名,打开方式,encoding=文件编码) _荟桐_ 发表于 2020-6-9 17:43
用记事本打开文件
然后另存为,看文件的编码
然后打开的时候open(文件名,打开方式,encoding=文件编码)
文件的编码在哪理可以看到呢?
jimuerga 发表于 2020-6-9 17:48
文件的编码在哪理可以看到呢?
记事本打开
另存为
然后看编码那一栏里显示的是什么
建议用pycharm,或vscode这样的编辑器,会在右下角显示编码 好的,谢谢,我试试,我好像没有安装 pycharm编辑器
jimuerga 发表于 2020-6-9 17:54
好的,谢谢,我试试,我好像没有安装 pycharm编辑器
显示扩展名设置:
https://xxx.ilovefishc.com/album/202005/18/134028ubtgeyabcpzpuvpa.png
储存文本设置:
https://xxx.ilovefishc.com/forum/202005/25/072650zqq1fqqmng421bqz.jpg
https://xxx.ilovefishc.com/forum/202005/25/072647nvzjv2zemvgxet5g.jpg jimuerga 发表于 2020-6-9 17:54
好的,谢谢,我试试,我好像没有安装 pycharm编辑器
然后在 open 里带上 encoding ='utf-8' 即可正常打开 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') txxcat 发表于 2020-6-9 18:46
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte,说的是用 ...
非常感谢,可能保存的文本编码就是用'gbk'的缘故,改了编码方式之后就可以用了。谢谢
页:
[1]