TypeError:'builtin_function_or_method'类型的对象没有len()

时间:2013-12-09 05:00:15

标签: python

我正在尝试在python中创建一个刽子手游戏。我将在txt文件中使用我将用于游戏的单词,我希望逐行读取此文件并将内容附加到列表中以供使用;但是我遇到了这个TypeError。 ('builtin_function_or_method'类型的对象没有len())

try:
    f = open(input("Enter a filename: "))
except:
    print("Cannot open file")
    quit()

myList = []
myLine = f.readline()
print(myLine)
print(len(myLine))

while len(myLine) >0 :
    myList.append(myLine)
    myLine = f.readline

错误与

有关
while len(myLine) >0 :

这让我很困惑,因为上面的print(myLine)和print(len(myLine))调用正常工作,输出了行的内容及其长度;只有当我进入while循环时才会出现此错误。

任何帮助将不胜感激, 非常感谢。

1 个答案:

答案 0 :(得分:4)

在你的while循环中,你可能意味着:

myLine = f.readline()

如果你没有调用方法(例如在那里有括号),那么你要为myLine(而不是方法的结果)分配方法,并且方法有没有明确的长度。

尽管如此,有一种更简单的方法来获取文件中的行列表:

myList = list(f)

应该很好地完成这项工作。