【发布时间】:2019-04-17 00:09:46
【问题描述】:
我正在尝试建立一个分数系统,我需要将文本文件中的所有分数输入到“记录数组”中。
我对@987654322@ 还很陌生,希望有一个简单的解决方案。
在我的程序中,记录数组在技术上将归类为namedtuples 的列表。
目前我有:
Player = namedtuple("Player", ["name", "result", "difficulty", "score"])
Playerlist = []
while str(f.readline) != '':
player = Player(
f.readline(),
f.readline(),
f.readline(),
f.readline())
Playerlist.append(player)
我尝试print(Playerlist[0]),但没有任何显示。
我也尝试print(Playerlist[0]) 没有任何循环并得到了预期的结果,尽管我不会将文本文件中的所有数据都存储到我的程序中。
文本文件中的内容示例 (scores.txt):
George
lost
H
18
Holly
lost
H
28
Marcus
won
H
30
编辑: 我试过了:
with open("scores.txt", "r") as f:
for line in f:
player = Player(
f.readline(),
f.readline(),
f.readline(),
f.readline())
Playerlist.append(player)
然而所有的内容都搞混了:
Player(name='H\n', result='28\n', difficulty='Marcus\n', score='won\n')
【问题讨论】:
-
你能提供一个示例文本文件吗?
-
查看answer
-
是的,所有数据都用新行分隔
-
所以我用 while len(line) != 0: 替换了 while 语句,现在它给了我一个错误,说 line is not defined?
标签: python list loops file-handling namedtuple