2017-10-13 3 views
2

Python 3.6とSpyderの使用。これは私を夢中にさせてくれるはずですが、簡単にするべきですが、私は困惑しています。私は、テキストファイルを開いて、行のリストを作成しようとしています。私はピリオドに基づいて線を区切りたい。私はlist_of_lines [25]のようなことができるようにしたい。私は次のエラーを取得し続けます。AttributeError: '_io.TextIOWrapper'オブジェクトには属性 'decode'がありません。私はファイルを正常に開き、.split()を使用しようとしましたが、asciiエラーが続いていました。テキストファイルを開き、文の間を区切る行のリストを作成しようとしています。

どのような提案や正しい方向への私を指して素晴らしいだろう。

with open("SORROWS_OF_YOUNG_WERTHER.txt") as book: 
    text_file = book.decode('ascii') 
    list_of_lines = [word.split('.') for word in text_file.readlines()] 
    print(list_of_lines) 

答えて

1

バイナリフラグ'b'で開いていない限り、ファイルはすでにテキストであるため、デコードする必要はありません。

これは正常に動作する必要があります:

with open("SORROWS_OF_YOUNG_WERTHER.txt") as book: 
    list_of_lines = [line.decode('utf-8').split('.') for line in book.readlines()] 
    print(list_of_lines) 

は出力がしかし、各期間で各ラインを分割しようとしていることに注意してください。

+0

ありがとうございます!それも私が考えたものです。デコードされていないファイルでsplit()メソッドを使用しようとすると、認識できない文字にエラーが発生しました。 – Eric

+1

あなたの入力はASCIIですか?それは別のエンコーディングかもしれません。 –

+0

これはエラーです。 UnicodeDecodeError: 'ascii'コーデックは、位置1236でバイト0xe2をデコードできません:序数が範囲内にありません(128) – Eric

関連する問題