我的问题是,我有一个测试,用户可以选择从3类。然后他们继续完成测验,目前他们的名字和分数被保存到正确班级的文本文件中(3个不同班级有3个不同的文件)。但是,如果同一个用户完成了测验,只有学生获得的最后2个分数保存在文件中,而不是所有的分数,我该怎么做呢。你知道吗
if classChoice ==1:
File=open("A.txt","a+")
File.write(names+","+str(score)+"\n")
File.close()
if classChoice ==2:
File=open("B.txt","a+")
File.write(names+","+str(score)+"\n")
File.close()
if classChoice ==3:
File=open("C.txt","a+")
File.write(names+","+str(score)+"\n")
File.close()
很明显,您希望将数据保存在自己定义的特定数据结构中。在你的例子中,你只想保存某个学生的最后两个分数。你知道吗
让我们观察一下文件“A.txt”的外观:
约翰,90岁
山姆,80岁
爱丽丝,100
萨姆,90岁
约翰,100
你不必每次都附加文本,你必须先阅读整个文件,然后把它转换成你可以使用的东西,比如字典。你知道吗
在我们的例子中,如果我调用
convert_file_to_dict('A.txt')
,我将收到由{ 'John':['90','100'], 'Sam':['80','90'], 'Alice':['100'] }
组成的字典。请注意,等级列表中的顺序是按“A.txt”中的行顺序保留的。你知道吗现在使用该词典,您可以控制只保留最后2个等级:
现在你只需要写一个函数把这个dict转换成一个文件。。。 *您可能想使用像
collections.defaultdict
这样的有用对象,但我不想在这里过度使用。。。你知道吗相关问题 更多 >
编程相关推荐