Python点滴02_Python3打开中文文本时报错的一种处理方法
2016-01-05 19:09
591 查看
在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:
仔细核对了一下原文件和输出文件,发现输出的内容(至少是中文字符部分)并无差异。尽管不知道具体在读入和输出时忽略了哪些错误,但基本功能是实现了(无中断的全文读入),我也就把这个当作一种解决方案吧。
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实践之(七)逻辑回归(Logistic Regression)
- Python中的Numpy入门教程
- 【python】pymongo使用
- 【python】msgpack使用
- Python中参数前加星号的用法
- Ubuntu14.04下python数据处理环境搭建
- python包的概念
- python中字符串中的链接转化为超链接
- python3.3操作MySQL数据库
- python字符串连接方式(转)
- leetcode之3Sum Closest
- Python之NumPy实践之数组和矢量计算
- Python之NumPy实践之数组和矢量计算
- [python] Understanding Network Hacks with Python
- python 一个比较好的讲解beanstalkc模块的网站
- numpy 简记
- 基于Python的数据分析(1):配置安装环境
- 关于python中的IO流
- Python顺序与range和random
- python+interface testing 读写Excel需要的包