python编码问题导致报错该怎么办,如何解决
Admin 2022-09-08 群英技术资讯 1004 次浏览
在这篇文章中,我们来学习一下“python编码问题导致报错该怎么办,如何解决”的相关知识,下文有详细的讲解,易于大家学习和理解,有需要的朋友可以借鉴参考,下面就请大家跟着小编的思路一起来学习一下吧。有一次报错如下:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb3 in position 0: invalid start byte
编码问题:
f = open(txtPath,'r',encoding='utf-8')
改为:
f = open(txtPath,'r',encoding='gbk')即可
print(f.read())
又有一次读取CSV文件时报错:
import pandas as pd
content = pd.read_csv('news.csv',encoding='utf-8')
print(content.head())
报错如下:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte

这里我将编码问题 utf-8 改为 gbk,还是报错。。。。报错如下:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa2 in position 93: illegal multibyte sequence

最后当我把程序改为:
import pandas as pd
content = pd.read_csv('news.csv',encoding='gb18030')
print(content.head())
即读取成功:

这类问题都是文件编码问题,至于文件到底是什么类型的编码,谁都不知道,只能用最常用的编码格式一个去试一下。这里我将文件编码格式改为gb18030,是偶尔看到有这种格式试出来的。。。。不知道现在有没有软件能够检测文件是什么类型就好了。。
通常,在python 文件,尤其是包含中文的python文件中,需要说明你的Python源程序文件使用的编码;如果未声明,程序默认使用ascii码来写,此时,书写中文的话python解释器一般会报错。
常见的编码声明:
# coding=utf-8 # coding:utf-8 # -*-coding=utf-8-*- # -*-coding:utf-8-*-
注意:
①coding后面使用:或=都可以。
②:或=与coding之间不能有空格,而:或=与编码之间有没有空格均可。
③编码声明一般放在python文件开头(第一行或第二行)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Python 权限控制模块 Casbin,Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型,更多相关内容感兴趣的朋友可以参考下面文章内容
python开发中经常遇到报错的情况,但是warning通常并不影响程序的运行,而且有时特别讨厌,下面我们来说下如何忽略warning错误。在说忽略wa
Python函数用法中定义、调用、参数传递和返回值是怎样的?下文的讲解详细,步骤过程清晰,对大家进一步学习和理解相关知识有一定的帮助。有这方面学习需要的朋友就继续往下看吧!
POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。因此Yahoo团队有推荐用GET替换POST来优化网站性能。但这是一个坑!跳入需谨慎。为什么?
前言在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识)、python type()(数据类型)和valu
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008