问题:Python: AttributeError: '_io.TextIOWrapper' 对象没有属性 'split'

我有一个文本文件,我们称它为goodlines.txt,我想加载它并创建一个包含文本文件中每一行的列表。

我尝试使用这样的split()程序:

>>> f = open('goodlines.txt')
>>> mylist = f.splitlines()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: '_io.TextIOWrapper' object has no attribute 'splitlines'
>>> mylist = f.split()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: '_io.TextIOWrapper' object has no attribute 'split'

为什么我会收到这些错误?这不是我使用split()的方式吗? (我用的是python 3.3.2)

解答

您在打开的文件对象上使用str方法。

您只需在文件对象上调用list()即可将文件作为行列表读取:

with open('goodlines.txt') as f:
    mylist = list(f)

这_does_ 包括换行符。您可以在列表理解中去掉那些:

with open('goodlines.txt') as f:
    mylist = [line.rstrip('\n') for line in f]
Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐