Python点滴02_Python3打开中文文本时报错的一种处理方法
来源:互联网 发布:万网 解析 端口 编辑:程序博客网 时间:2024/05/16 17:08
在Python3中,使用open函数打开一个纯中文的txt文件时,提示有错误,报错信息如下:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xfe in position 1724: illegal multibyte sequence
用Notepad++打开对应文件,找到对应位置,未发现特殊字符,也没有什么异常情况出现。
个人怀疑是有一些特殊字符无法被正确解释(怀疑是全角、半角啊之类比较细微的问题),于是尝试在open中加入encoding='UTF-8'参数,依然报错:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa1 in position 0: invalid start byte
看来错的更离谱了,似乎一开始就读不了。
于是尝试新方法,既然读入的文件都是字节流,何不现以二进制读入,然后输出时再解码?于是在open中选择二进制模式(rb),然后用如下语句:
for line in f.readlines():
print (line.decode('gbk'))
这样就可以输出一些字符了!但是读不到文件结尾又中断了。(但是!毕竟可以输出部分文字了!)
在报错位置仔细核对,没有发现什么问题。已输出的部分都正常,是在找不到中断的原因。无奈之下,在open函数中加入errors="ignore"参数,竟然成功读到文末:
with open('qtsFull.txt',encoding='gbk',errors="ignore") as f:
仔细核对了一下原文件和输出文件,发现输出的内容(至少是中文字符部分)并无差异。尽管不知道具体在读入和输出时忽略了哪些错误,但基本功能是实现了(无中断的全文读入),我也就把这个当作一种解决方案吧。
- Python点滴02_Python3打开中文文本时报错的一种处理方法
- python 打开有中文的文件时报错
- 一种中文文本的快速分词方法(二)
- 一种中文文本的快速分词方法(三)
- Python处理中文文本字符时提取某个汉字或字符的方法
- 中文文本处理传统方法
- Python学习2_Python3.x和Python2.x的区别
- 【转】Python urllib2.urlopen打开中文url的编码处理
- python urlopen 网址中有中文时报错的解决办法
- Python学习_Python3.5安装
- 一种中文文本的快速分词方法(一)(未完待续)
- python输入中文注释时报错
- python运用中文注释时报错解决方法
- python运用中文注释时报错解决方法
- 安装MySQL配置时报错的处理方法
- python中文处理好方法
- python中文处理好方法
- 一种多线程的处理方法
- oracle 删除用户,提示“无法删除当前已连接的用户”
- 使用ViewServer检测布局复杂性
- android解析xml简单分析
- android adb命令
- JavaScript 脑补
- Python点滴02_Python3打开中文文本时报错的一种处理方法
- javascript DOM 获取节点
- 误删了Firefox书签,好恐怖,如何恢复
- 大话设计模式-代理模式
- 2. Add Two Numbers官方通过版本(8.46%)
- 推荐系统
- 【第三节】android增量升级之提供服务端代码,整理项目
- 线程的7种状态及相互转换
- ArcGIS教程:测量坡向