我试图从文件“分数”中打印一个特定的行,这是选项B。这是我的代码:
print("Option A: Show all scores\nOption B: Show a record\nOption Q: Quit")
decision = input("Enter A, B, C or Q: ")
myFile = open("Scores.txt", "rt")
if decision == "A":
record = myFile.read()
print(record)
myFile.close()
elif decision == "B" or decision == "b":
playerName = input("Enter a player name to view their scores: ")
record = myFile.read()
answer = record.find(playerName)
for line in answer:
print(line)
elif decision == "Q" or decision == "q":
exit我选择了选项B,然后输入了一个保存玩家得分的球员名,但是它抛出了以下错误消息:
line 12, in <module>
for line in answer():
TypeError: 'int' object is not callable发布于 2016-04-25 18:14:21
一种更安全的读取文件和查找数据的方法,以便在将整个文件存储在内存中时不会出现OutOfMemory问题。
playerName = input("Enter a player name to view their scores: ")
with open("Scores.txt", 'r') as f:
for row in f:
if playerName in row:
print row这样,您将使用with,它将在程序结束时或垃圾收集启动时自行关闭文件。这样,python将逐行读取文件,并且只在内存中存储1行。因此,您可以使用巨大的文件,而不必担心内存问题。
希望它有帮助:)
https://stackoverflow.com/questions/36700551
复制相似问题