代码之家  ›  专栏  ›  技术社区  ›  avr-girl

正在将生成器转换为列表,但出现错误:“\uIO.textioWrapper”对象没有“decode”属性(Python3.6.4)

  •  0
  • avr-girl  · 技术社区  · 8 年前

    我正在写一篇文章 UTF-8 . 我想标记它,然后将它转换成一个列表。 但是我得到了以下错误。

    import nltk, jieba, re, os
    
    with open('file.txt') as f:
        tokenized_text = jieba.cut(f,cut_all=True)
    
    type(tokenized_text)
    generator
    
    word_list = list(tokenized_text)
    ---------------------------------------------------------------------------
     AttributeError                            Traceback (most recent call last)
    <ipython-input-5-16b25477c71d> in <module>()
    ----> 1 list(new)
    
    ~/anaconda3/lib/python3.6/site-packages/jieba/__init__.py in cut(self, sentence, cut_all, HMM)
    280             - HMM: Whether to use the Hidden Markov Model.
    281         '''
    --> 282         sentence = strdecode(sentence)
    283 
    284         if cut_all:
    
    ~/anaconda3/lib/python3.6/site-packages/jieba/_compat.py in strdecode(sentence)
     35     if not isinstance(sentence, text_type):
     36         try:
    ---> 37             sentence = sentence.decode('utf-8')
     38         except UnicodeDecodeError:
     39             sentence = sentence.decode('gbk', 'ignore')
    
    AttributeError: '_io.TextIOWrapper' object has no attribute 'decode'
    

    我知道问题出在解霸包的某个地方。 我也试着把密码改成

    with open('file.txt') as f:
    new = jieba.cut(f,cut_all=False)
    

    但得到了同样的结果。

    1 回复  |  直到 8 年前
        1
  •  0
  •   user2357112    8 年前

    jieba.cut 接受字符串,而不是文件。这在 readme .

    推荐文章