请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于编码方式的问题

老师您好,我的编码方式好像有问题,只有通过这种编码方式才能成功,而且按照您写的那个generate_seg_file函数很容易出现把新旧两个文件的内容全部抹掉。请问是什么原因呢?图片描述

正在回答 回答被采纳积分+3

1回答

正十七 2018-11-25 21:45:29

参考原始代码:

def generate_seg_file(input_file, output_seg_file):
    """Segment the sentences in each line in input_file"""
    with open(input_file, 'r') as f:
        lines = f.readlines()    with open(output_seg_file, 'w') as f:        for line in lines:
            label, content = line.decode('utf-8').strip('\r\n').split('\t')
            word_iter = jieba.cut(content)
            word_content = ''
            for word in word_iter:
                word = word.strip(' ')                if word != '':
                    word_content += word + ' '
            out_line = '%s\t%s\n' % (label, word_content.strip(' '))
            f.write(out_line.encode('utf-8'))

输出文件的编码一般应该是utf-8的,你的代码没有调encode函数,所以需要你打开文件的时候指定编码方式。

把旧文件内容抹掉的原因是因为代码中打开的就是一个文件啊,自然要覆盖。如果你不想让它覆盖,你可以指定其他的文件名。

0 回复 有任何疑惑可以回复我~
  • 怎么调encode函数?
    回复 有任何疑惑可以回复我~ 2019-06-06 11:20:18
  • 字符串上直接调用。out_line.encode('utf-8')
    回复 有任何疑惑可以回复我~ 2019-06-09 10:23:57
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号