AttributeErrorの直し方


以下のエラーはどう直せばよいのでしょうか。

[code]

    C:\UsersDesktop>python PrepareChain.py sample.txt
    Traceback (most recent call last):
      File "PrepareChain.py", line 249, in <module>
        chain = PrepareChain(text)
      File "PrepareChain.py", line 33, in __init__
        text = text.decode("utf-8")
    AttributeError: 'str' object has no attribute 'decode'
    
[/code]

該当する行については

### 33行目周辺

[code]

    32 if isinstance(text, str):
    33           text = text.decode("utf-8")
    34        self.text = text
    
[/code]

### 249行目周辺

[code]

     243 f = open(param[1], encoding='utf-8')
     244   text = f.read()
     245   f.close()
     246
     247  # print (text)
     248
     249   chain = PrepareChain(text)
     250   triplet_freqs = chain.make_triplet_freqs()
     251   chain.save(triplet_freqs, True)
    
[/code]

です。




decodeメソッドはバイト列を変換する際に用いられるメソッドです。そのためstringオブジェクトにdecodeメソッドは用意されていません。  
今回のエラーはそれを指摘しているものです。stringオブジェクトからバイト列への変換にはencodeメソッドを利用してください。

[code]

    text = text.encode('utf-8')
    
[/code]

しかし、ファイルオープンの時点でencodingを指定しているのでこの処理自体必要ないかもしれません。

