赞
踩
环境说明:编辑器pycharm,python37,win7
- file1 = open(r'C:\Users\Administrator\Desktop\test\abc.txt','r',encoding='utf-8')
-
- filecontent= file1.read()
-
- 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还是会报之前一样的错误~~)
这是编码解码问题,各个编码类型采用的进制不同,会造成在内存中的地址不同,而且编码位数也不同,因此无法对应不一样会造成无法解码的状态。
- with open(r'C:\Users\Administrator\Desktop\test\ceshi_02.csv',newline = '',encoding='utf-8') as f:
- reads = csv.reader(f)
- for row in reads:
- 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:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。