我不能让我的简单搁置python脚本工作

时间:2015-11-20 19:18:37

标签: python shelve

嘿伙计们,我正在为一所学校的项目工作,我要问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 ()

2 个答案:

答案 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文档的书签,以获得更多此类问题。