IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> [python专题笔记]读文件乱码 -> 正文阅读

[开发测试][python专题笔记]读文件乱码

1遇到文件中有错误编码的字符,会导致读取文件报错

一 现象

文件是想用utf-8解析,文件格式也是该格式,但是其中包含部分乱码,使用如下代码解析,会报错

f = open("test,txt", "r")
data = f.readline()

报错

    data = fb.readline()
  File "/usr/lib/python3.5/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 1: invalid start byte

二 原因

文件中出现,无法识别的编码(乱码),使用如上代码解析,会默认使用“utf-8”解析,但是遇到乱码部分无法解析,出现报错

 <<80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xf`à^^x^^`<86>~f<9e>`<98><86><98>^^f^^~fx^F^^~f<9e>`<98><9e>^^f^^~f<86><98>^^^^<98><86><98>?<9e>?^^~<86>`x<9e>`x       ?<98><86>à<98><86><98><98>~f?xxt^^f^^<9e>`^^xxt^^x<86>~f<9e>`xàx^^?<80><98><9e><80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xf`à`à`?<9e><86><98>?<9e>?<9e><98>       <98>^^?<9e>t<86>?<9e>~^^?x<86>^^<9e><86><98>?<9e>?<9e><98><98>^^?<9e>t<86>?<9e>^F^^<9e>^F<9e>xf<98><86>^^<9e>à<9e>fxf^^^^f8~^Fx^^`x<9e>`x<86>~f<9e>`xàx^^x?<98><86><98>à<98><86><98><98>~fx?<80><       98><9e><80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xf`à<98>àxxà`<9e><9e><80><9e><98><9e>?x<86>^^<9e><86><9e>`<9e><86>~<98><80>^^~^^<9e>`<9e>^^~<9e><86>x<98><       86><98><86>xt<86>f~f<9e>`~x`x?^F?x?<9e><86><9e>`^^x~^F^^~^^<9e>`<9e>^^~^^x<86>~f<9e>`<98><9e><9e>àx^^???<80><98><9e><80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^       `^^xf`àxx`~^F<9e>?<9e><86><98>?^^<9e><86>^^<9e><86><98>?<9e>?<9e><98><98>^^?<9e>?x<86>^F<98>?<9e><86>?<98>?<9e><86><80><9e>^F^^<9e>`^^^^f?~x`x^^?^F?xà8?<9e><86>?<98>?^^x<9e>^F^^<9e>`^^^^f?xà<98       ><80>^^^^à^^fxà<86>x<86>~f<9e>`<98>txàx^^x?<98><86>~?xx?<80><98><9e><80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xf`à^^x`?<9e><86>~`<98><98><9e>~<9e><86>^^<9e       ><86><98>?<9e>?<9e><98><98>^^?<9e>?x<86>^F<98>?<9e><86>?<98>?<9e><86><80><9e>^F^^<9e>`^^^^f?~~xx`<9e>`?à<98>?<9e><86>?<98>?^^x<9e>^F^^<9e>`^^^^f?xà<98><80>^^^^à^^fxà<86>x<86>~f<9e>`<98>txàx^^x?       <98><86>~?xx?<80><98><9e><80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xf`à<98>?`^^à`~^F^^~^^<9e>t<86>^^<9e><86><98>?<9e>?<9e><98><98>^^?<9e>?x<86>^F<98>?<9e><       86>?<98>?<9e><86><80><9e>^F^^<9e>`^^^^f?~^Fxàx^^?^F?xà<98>?><86>?<98>?^^x<9e>^F^^<9e>`^^^^f?xà<98><80>^^^^à^^fxà<86>x<86>~f<9e>`<98>txàx^^x?<98><86>~?x`^^<98><<80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx       ^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xx``àx^^à`<86>~f<9e>`<98><86><98>^^f^^~fx^F^^~f<9e>`<98><9e>^^f^^~f<86><98>^^^^<98><86><98>?<9e>?^^~<86>`x<9e>`x?<98><86><98>à<98><86><98><98>~f?xx       t^^f^^<9e>`^^xxt^^x<86>~f<9e>`xàx^^?<80><98><9e><80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xx``x~x`?<9e><86><98>?<9e>?<9e><98><98>^^?<9e>t<86>?<9e>~^^?x<86>       ^^<9e><86><98>?<9e>?<9e><98><98>^^?<9e>t<86>?<9e>^F^^<9e>^F<9e>xf<98><86>^^<9e>à<9e>fxf^^^^f8~^Fx^^`x<9e>`x<86>~f<9e>`xàx^^x?<98><86><98>à<98><86><98><98>~fx?<80><98><9e><80><9e>?`<9e><9e>^^<9e       >?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xx``x<80>x`<9e><9e><80><9e><98><9e>?x<86>^^<9e><86><9e>`<9e><86>~<98><80>^^~^^<9e>`<9e>^^~<9e><86>x<98><86><98><86>xt<86>f~f<9e>`~x`x?^F       ?x?<9e><86><9e>`^^x~^F^^~^^<9e>`<9e>^^~^^x<86>~f<9e>`<98><9e><9e>àx^^???<80><98><9e><80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xx``^^^F^^`~^F<9e>?<9e><86><9       8>?^^<9e><86>^^<9e><86><98>?<9e>?<9e><98><98>^^?<9e>?x<86>^F<98>?<9e><86>?<98>?<9e><86><80><9e>^F^^<9e>`^^^^f?~x`x^^?^F?xà8?<9e><86>?<98>?^^x<9e>^F^^<9e>`^^^^f?xà<98><80>^^^^à^^fxà<86>x<86>~f<9       e>`<98>txàx^^x?<98><86>~?xx?<80><98><9e><80><9e>?`<9e><9e>^^<9e>?`xx<9e>xx^^`<9e><9e><9e>^^f??<9e><80><9e>?`<9e>^^x^^`^^xx``?`xà`?

三 解决方法

f = open("test,txt", "r") #默认utf-8读取文件
改成
f = open("test.txt", "rb") # 使用二进制读取文件

data = f.readline()
改成
data = f.readline()
data = data.decode('utf-8', 'ignore') #ignore"的作用就是有异常就越过

如上改法,可以跳过乱码部分

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 19:07:17  更:2022-04-22 19:08:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 8:49:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码