python 3.3.4の "decode"メソッドに問題があります。これは私のコードです:
for lines in open('file','r'):
decodedLine = lines.decode('ISO-8859-1')
line = decodedLine.split('\t')
しかし、私はこの問題の行をデコードできません:
AttributeError: 'str' object has no attribute 'decode'
あなたはなにか考えはありますか?ありがとう
1つのencodes文字列、および1つのdecodesバイト。
ファイルからバイトを読み取ってデコードする必要があります。
for lines in open('file','rb'):
decodedLine = lines.decode('ISO-8859-1')
line = decodedLine.split('\t')
幸いopen
には、これを容易にするエンコーディング引数があります。
for decodedLine in open('file', 'r', encoding='ISO-8859-1'):
line = decodedLine.split('\t')
open
は、すでにPython 3でUnicodeにデコードします。テキストモードで開いた場合は3です。バイトとして開き、デコードできるようにするには、次のコマンドで開く必要があります。モード「rb」。
これは、Python 3.6で中国語のテキストをスムーズに読み取るために機能します。最初に、strをバイトに変換してから、デコードします。
for l in open('chinese2.txt','rb'):
decodedLine = l.decode('gb2312')
print(decodedLine)