当前位置:   article > 正文

python 读取数据出现UnicodeDecodeError:: ‘utf-8‘ codec can‘t decode byte 0xc8 in position 0: invalid contin_utf-8' codec can't decode byte 0xc7 in position 1:

utf-8' codec can't decode byte 0xc7 in position 1: invalid continuation byt

解决方法:

读取时也可以用二进制模式打开的文件(包括模式参数中的'rb')将内容作为字节对象,而不进行任何解码。

然后使用line.decode(‘utf-8’,errors = 'ignore')解码,其中的errors参数:修改字符集参数,一般这种情况出现得较多是在国标码(GBK)和utf-8之间选择出现了问题。出现异常报错是由于设置了decode()方法的第二个参数errors为严格('strict')形式造成的,因为默认就是这个参数,将其更改为'ignore'等即可。

举例:

  1. import os
  2. path = r'.\es'
  3. for file in os.listdir(path):
  4. file_path = os.path.join(path,file)
  5. file_output = os.path.join(path,f"{file}.txt")
  6. with open(file_path,mode='rb') as f: # 使用二进制形式'rb'进行读取
  7. with open(file_output,mode='a+',encoding = 'utf-8') as w:
  8. for line in f.readlines():
  9. line_content = line.decode('utf-8',errors='ignore').strip().split() # 使用'utf-8'进行解码,errors='ignore'进行忽略
  10. if len(line_content) == 0:
  11. w.write('\n')
  12. else:
  13. w.write(str(line_content[0].strip()) + ' ' + str(line_content[-1].strip()) + '\n')


 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/424103
推荐阅读
  

闽ICP备14008679号