2017-10-13 50 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

相關問題