您的位置:首页 > 产品设计 > UI/UE

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 18: illegal multibyte sequence

2017-11-03 11:10 746 查看
CSDN:http://blog.csdn.net/kicilove/article/

github:https://github.com/zhaohuicici?tab=repositories

问题:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 18: illegal multibyte sequence

原因:

本来想完成读文件,再写入另一文件的,但是在 fp.read() 时,一直遇到上面的错误

经搜索发现问题在于知道是字符流的问题。

解决方法:

可以把 open 的方式变为 二进制,也就是下面代码里的 open(filename,’rb’), 这下好了,至少后面的read() 可以通过。

代码如下:

# _*_coding:utf-8_*_

import re

filename = 'train.txt'

### mark
fp = open(filename,'rb')

content1 = fp.read().decode('utf-8')

reg = r'<p>(.*?)</p>'

#注意content1的输出
print(content1)

##附:其他部分
result = re.findall(reg,content1)
fp.close()
fp = open(filename,'bw')
for r in result:
r = r.encode('utf-8')
fp.write(r)
fp.write('\n'.encode('utf-8'))
fp.close()

结果输出:
0   你好吗?立夏了,心中又把你想起。愿会心的微笑,排满你每天的日历;抛弃压力,婴儿般惬意地呼吸;天气转热,别忘好好保重自己!
1   女子闯红灯被拦 脱鞋猛抽交警-图[腾讯]-中国移动冲浪助手:http://go.10086.cn/nd/lAz/cJctr
0   套餐余量提醒服务:截至本月05日,您定制的(1)预存返话费捆绑10元流量包包含的数据流量剩余49.15MB;本地数据流量剩余12.90MB;(2)全球通88商旅套餐包含的语音剩余254分钟;数据流量剩余30.00MB;感谢您的使用。


可见已经可以正常读入啦!

CSDN:http://blog.csdn.net/kicilove/article/

github:https://github.com/zhaohuicici?tab=repositories
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐