嘿伙计们,我正在为一所学校的项目工作,我要问10个数学问题,然后存储他们的分数名称和课程,但唯一的事情是我似乎无法正确地回到搁置工作。下面是试图开始工作的代码,任何帮助都会很好。
global username
global clss
global score
file = shelve.open('score.txt',writeback=True)
try:
file['score'] = (username, score, clss)
finally:
file.close ()
修改
我要做的是创建一个保存分数类和人的年龄的脚本。我得到的错误是,每次我运行脚本时都会删除以前的数据
编辑将我的代码更改为
global username
global clss
global score
file = shelve.open('score',writeback=True)
try:
if 'scores' not in file.keys():
file['score'] = [ (username, score, clss) ]
else:
file['score'].append( (username, score, clss) )
finally:
file.close ()
答案 0 :(得分:1)
正如我上面提到的,如果你只使用一个元组,那么单独写回将不起作用。如果要附加用户/分数/类(即主题)元组的列表,请执行此操作。 (确保将写回设置为true,否则此追加的直接调用将不起作用。)
try:
if 'scores' not in file.keys():
file['scores'] = [ (username, score, clss) ]
else:
file['scores'].append( (username, score, clss) )
答案 1 :(得分:0)
检查Python文档是否“打开”。 https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files
有第二个字段,一个字符串(例如“r +”),它会更改文件是附加到,只读还是重写。这应该对你有帮助。
您可能希望在线添加Python文档的书签,以获得更多此类问题。