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

相关问题