【2020Python错题本】文件处理

微笑、不失礼 提交于 2020-03-13 21:43:02

错误类型:

UnicodeDecodeError: 'gbk' codec can't decode byte 0x8c in position 14: illegal multibyte sequence

1、 t 模式下的 读操作

 

新建txt文件 313.txt ——

hello world
hello day
hello me

@2020

 

>>> f=open(r'D:\0tempt\313.txt',mode='rt')
>>> print(f)
<_io.TextIOWrapper name='D:\\0tempt\\313.txt' mode='rt' encoding='cp936'>
>>> res=f.read()
>>> print(res)
hello world
hello day
hello mili

@2020

>>> 

 

新建txt文件 3133.txt——

你好,世界
你好,每一天
你好,米粒

 

>>> f=open(r'D:\0tempt\3133.txt',mode='rt')
>>> print(f)
<_io.TextIOWrapper name='D:\\0tempt\\3133.txt' mode='rt' encoding='cp936'>
>>> res=f.read()
Traceback (most recent call last):
  File "<pyshell#46>", line 1, in <module>
    res=f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x8c in position 14: illegal multibyte sequence
>>> 

UnicodeDecodeError: 'gbk' codec can't decode byte 0x8c in position 14: illegal multibyte sequence

解决方法: 指定解码编码格式——encoding='UTF-8'

>>> f=open(r'D:\0tempt\3133.txt',mode='rt',encoding='UTF-8')
>>> print(f)
<_io.TextIOWrapper name='D:\\0tempt\\3133.txt' mode='rt' encoding='UTF-8'>
>>> res=f.read()
>>> print(res)
你好,世界
你好,每一天
你好,米粒

>>> 

 

=====

之前英文和数字的文本内容,读取时没有指定解码编码,没有出错。是因为英文和数字是不会出现乱码现象的,使用任何编码类型解释器都能识别英文和数字。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!