当前位置:   article > 正文

python37读txt,csv文件报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 0:

unicodedecodeerror: 'utf-8' codec can't decode byte 0xd5 in position 0: inva

环境说明:编辑器pycharm,python37,win7

1、读txt文件代码:

  1. file1 = open(r'C:\Users\Administrator\Desktop\test\abc.txt','r',encoding='utf-8')
  2. filecontent= file1.read()
  3. print(filecontent)

运行报错信息:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 0: invalid continuation byte

解决方法一:

取消字符编码格式:

file1 = open(r'C:\Users\Administrator\Desktop\test\abc.txt','r')

filecontent= file1.read()

print(filecontent)

 

解决方法二:

编码格式改为 gbk

file1 = open(r'C:\Users\Administrator\Desktop\test\abc.txt','r',encoding='utf-8')

filecontent= file1.read()

print(filecontent)

这种方法第一次运行会报错:后面运行没报错了,原因不明~~

UnicodeDecodeError: 'gbk' codec can't decode byte 0x89 in position 8: illegal multibyte sequence

 

解决方法三:

修改原文件编码格式:默认存的文件编码格式为ANSI,文件另存为改编码为UTF-8后,可以正常打开。

如果修改为UTF-8还报错,可以尝试修改为Unicode(不过我的修改为Unicode还是会报之前一样的错误~~)

这是编码解码问题,各个编码类型采用的进制不同,会造成在内存中的地址不同,而且编码位数也不同,因此无法对应不一样会造成无法解码的状态。

2、读csv文件代码:

  1. with open(r'C:\Users\Administrator\Desktop\test\ceshi_02.csv',newline = '',encoding='utf-8') as f:
  2. reads = csv.reader(f)
  3. for row in reads:
  4. print(row)

备注说明:如果ceshi_02.csv文件中没有中文字符,可以读取,但是如果有中文字符,读取文件时报一下错误:

报错信息:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 0: invalid continuation byte

解决方法:

将字符编码改为:gb18030,其他不变

即with open(r'C:\Users\Administrator\Desktop\test\ceshi_02.csv',newline = '',encoding='gb18030') as f:

   

 

 

 

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号