欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【2020Python错题本】文件处理

程序员文章站 2022-04-16 09:23:33
错误类型: UnicodeDecodeError: 'gbk' codec can't decode byte 0x8c in position 14: illegal multibyte sequence 1、 t 模式下的 读操作 新建txt文件 313.txt —— hello worldhe ......

错误类型:

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)
你好,世界
你好,每一天
你好,米粒

>>> 

 

=====

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