我无法让我的简单搁置 python 脚本工作

I cant get my simple shelve python script to work

大家好,我正在为学校做一个项目,我必须问 10 个数学问题,然后存储他们的分数名称和 class,但唯一的问题是我似乎无法恢复正常工作搁置。下面是我试图开始工作的代码,任何帮助都会很好。

global username
global clss
global score
file = shelve.open('score.txt',writeback=True)
try:
    file['score'] = (username, score, clss)
finally:
    file.close ()

编辑

我想做的是创建一个脚本来保存一个人的分数 class 和年龄。我得到的错误是每次我 运行 脚本都会删除以前的数据

编辑将我的代码更改为

    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 ()

正如我上面提到的,如果你只使用一个元组,单独的写回是行不通的。如果你想附加一个 user/score/class (即主题)元组的列表,那么就这样做。 (确保将 writeback 设置为 true,否则直接调用 append 将不起作用)。

try:
    if 'scores' not in file.keys():
        file['scores'] = [ (username, score, clss) ]
    else:
        file['scores'].append( (username, score, clss) )

查看 Python 文档以获得 "open." https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files

还有第二个字段,一个字符串(例如"r+"),它改变了文件是追加、只读还是重写。应该对你有帮助。

您可能希望将 Python 在线文档添加为书签以了解更多此类问题。