3 回答
TA贡献2080条经验 获得超4个赞
要简单地附加一个条目,您不需要打开文件两次,因为您可以在r+模式下打开。这将让你阅读和写作。rmode 将文件指针放在文件的开头而不是结尾。当你打开文件时,你应该使用一个with语句来自动关闭文件,即使发生错误:
with open('Dice Game.txt', 'r+') as file:
data = [line.strip() for line in file]
print(winner, file=file)
data.append(winner)
赋值给的理解将data文件指针移到最后。然后print语句写到最后。
对数据进行排序是完全独立的蠕虫。您必须拆分数据并按分数的数值进行排序。然后你将不得不重写整个文件。虽然您可以通过一次打开来完成此操作,但在您的原始示例中打开两次可能会更容易:
fname = 'Dice Game.txt'
with open(fname, 'r') as file:
data = [int(score), name.rstrip() for score, name in (line.split('=', 1) for line in file)]
data.sort()
with open(fname, 'w') as file:
file.writelines(f'{score}={name}\n' for score, name in data)
TA贡献1804条经验 获得超2个赞
让我们存储文件中的内容。
lines = []
for line in file:
winner = line.strip() # something like '30=Jim'
score, name = winner.split('=') # => '30', 'Jim'
# now store that information for later
lines.append((int(score), name)) # we're putting (30, 'Jim') in lines
# lines contains [(30, 'Jim'), (20, 'Amy'), (60, 'Susan'), ...]
print(lines)
您现在可以使用您在网上找到的一种方法进行排序lines吗?
添加回答
举报