python输出unicode编码_Python以utf8编码读取文件

python输出unicode编码_Python以utf8编码读取文件withopen(self.path,’r’)astest:forlineintest:pass代码如上,出现错误:UnicodeDecodeError:’gbk’codeccan’tdecodebyte0x80inposition…UnicodeDecodeError:’gbk’codeccan’tdecodebyte0x80inposition9:…或者是UnicodeDecodeErr..

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

with open(self.path, 'r') as test:
     for line in test:
         pass

代码如上,出现错误:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position …
 

UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 9: ...

或者是

UnicodeDecodeError: 'gbk' codec can't decode byte 0xb3 in position 9: illegal multibyte sequence

解决方法

主要原因是因为编码的问题,可能是因为0x80这个字节在gbk编码中没有这个字符,可能原字符是两个字节,在gbk里被解析成了一个字节,导致字符不存在。解决方法有两个,一个是二进制读取,一个是改编编码方式:

方法一:二进制读取

 with open(self.path, 'rb') as test:
     for line in test:
         pass

但是这样在读取的是中文文本的时候还可能会产生其他的错误:

TypeError: a bytes-like object is required, not 'str'

方法二:改变打开文件的编码方式

 with open(self.path, 'r', encoding='utf-8') as test:
     for line in test:
         pass

或者

 with open(self.path, 'r', encoding='utf-8-sig') as test:
     for line in test:
         pass

这个utf-8-sig亲测好用,屡试不爽,非常nice

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194235.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 整理了十五道为数不多的tomcat面试题,错过就没了!

    整理了十五道为数不多的tomcat面试题,错过就没了!当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。

    2022年6月6日
    29
  • matlab毕业设计题目_matlab毕业设计论文带有程序

    matlab毕业设计题目_matlab毕业设计论文带有程序毕业设计(论文)`题目:院系机械工程系专业班级学生姓名指导教师二○一年六月Matlab的转子故障振动信号分析摘要随着机械行业的日益发展,转子等旋转机械的故障日渐趋多,转子的故障诊断技术受到越来越多的重视,并在世界范围内取得了长足的进步。作为大型机器中不可或缺的部件,有着举足轻重的作用,但,,,,。对发电机及其转子进行状态监测和信号分析,,转子故障类型主要有四种:转子不平衡、、转子…

    2022年10月15日
    2
  • 普罗米修斯监控系统_一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式…

    普罗米修斯监控系统_一步步教你用Prometheus搭建实时监控系统系列(二)——详细分析拉取和推送两种不同模式…前言本系列着重介绍Prometheus以及如何用它和其周边的生态来搭建一套属于自己的实时监控告警平台。本系列受众对象为初次接触Prometheus的用户,大神勿喷,偏重于操作和实战,但是重要的概念也会精炼出提及下。系列主要分为以下几块Prometheus各个概念介绍和搭建,如何抓取数据(一步步教你用Prometheus搭建实时监控系统系列(一)——上帝之火,普罗米修斯的崛起)如何推送数据…

    2022年7月19日
    23
  • XLSTransformer生成excel一个简单的演示示例文件

    XLSTransformer生成excel一个简单的演示示例文件项目结构图:在这些项目中使用jar。可以http://www.findjar.com/index.x下载ExcelUtil类源代码:packageutil;importjava.io.IOExce

    2022年7月2日
    30
  • hdu 1142_hdu1001

    hdu 1142_hdu1001【最短路问题】第一道最短路问题+DFS各种WARE还是在参照大神的代码的情况下 http://acm.hdu.edu.cn/showproblem.php?pid=1142只是照搬自己熟悉下过程dijkstra+dfs#include<cstdio>#include<cstring>#defineINF2000000000#defineN101…

    2022年10月1日
    2
  • python随机产生数字_随机数生成excel

    python随机产生数字_随机数生成excel使用场景:随机短信验证码importrandomimportstring#指定随机数长度r_num=4#生成数字+字母(字符串序列)token=string.ascii_letters+string.digits”’string.ascii_letters:生成大小写字母(type:字符串)string.digits:生成数字…

    2022年9月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号