UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)

Python3 读取TXT的时候会报字符编码的bug

for line in open(corpus_path, 'r'):
        content = line.strip()
        seg_list = seg_to_list(content, pos)
        filter_list = word_filter(seg_list, pos)
        doc_list.append(filter_list)

这种读取TXT的方式一直都有问题,一直没有找到解决的方法。下面的就可以

with open('../data/***.txt','r',encoding='utf-8') as f:
    read = f.read().splitlines()
    for row in read:
        print(row)

老是遇见Python读写文本编码问题,有个包可以较好的解决问题:codecs

from gensim.corpora import WikiCorpus
import jieba
from langconv import *
import codecs

zhwiki = 'zhwiki-latest-pages-articles.xml.bz2'
strs = []
i = 0
f = codecs.open('../data/zhiwiki.txt','a','utf-8')
wiki = WikiCorpus(zhwiki,lemmatize=False,dictionary={})
for text in wiki.get_texts():
    for sen in text:
        sen = Converter('zh-hans').convert(sen)
        sen_list = list(jieba.cut(sen))
        for s in sen_list:
            strs.append(str(s))
    tmp = ' '.join(strs)
    f.write(tmp+'\n')
    strs = []
    i = i + 1

    if(i % 200 == 0):
        print('save'+str(i)+'article')
f.close()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值