2013-03-09 88 views
0

帮助,我试图将所有数据保存在我的文件中作为列表。Python Tkinter保存列表

register = [] 


def some_command(): 
    register.append([variable,'variable_x']) 

def save(): 
    outFile = open('Save.txt', 'wb') 
    pickle.dump(register, outFile) 
    outFile.close() 

它成功保存文件。但是,当我使用“some_command”添加一个新的元素“注册”它不会更新;它甚至不会给出错误。可能是什么问题呢?

+0

只是检查它不是一个缩进的问题,所以在实际的源你有register.append ...线标签在打电话吗? – 2013-03-09 06:22:12

+0

当然:D 感谢您告诉固定的。 – madprogramer 2013-03-09 06:23:34

+0

你可以给出一个更完整的例子来展示当你使用'some_command'时'变量'是什么? – 2013-03-09 06:24:50

回答

1

如果你将寄存器和变量传递给some_command,它会起作用,否则你不能从函数内正确地编辑寄存器。所以,它看起来像这样:

def some_command(register, variable): 
    register.append([variable,'variable_x']) 

这不是必须的,但它确实有助于保持整洁。

而且很明显,你将与

some_command(register, whatever you want) 
+0

我不能: 高清some_command(): 全局寄存器 。 ..而不是 ? – madprogramer 2013-03-09 06:30:09

+0

你试过了吗?我知道我建议的方法是在项目变大时保持整洁(人们通常讨厌全球化),但是如果这样做的话,它肯定会更好的修复,而且更小一些 – 2013-03-09 06:32:24

+0

试过了,但它不起作用。你的代码的问题是这个保存函数应该是自动的。所以只需传入some_command()就足够了。 – madprogramer 2013-03-09 06:41:04