所以这是我的代码,我想将值'test'保存到文件中,以便在重新打开程序时可以调用它.
import pickle test = 0 def Save(): with open('objs.pickle', 'wb') as f: pickle.dump(test, f) def Load(): with open('objs.pickle', 'rb') as f: test = pickle.load(f)
这段代码的问题在于,当我重新打开程序然后运行然后输入Load()时,它表示'test'仍然等于0.(很可能忽略了一些)
所以我的问题是,我怎么能解决用斜体字发出的问题?
全局变量test
与test
函数内部无关 Load()
.将您的功能更改为:
def Load(): with open('objs.pickle', 'rb') as f: return pickle.load(f)
现在这个函数返回它从pickle文件中读取的值.
像这样称呼它:
print(Load())
附注:按照惯例,函数名称在Python中都是小写的.所以函数名应该是实际的load()
.
整个程序风格更好:
import pickle def save(file_name, obj): with open(file_name, 'wb') as fobj: pickle.dump(obj, fobj) def load(file_name): with open(file_name, 'rb') as fobj: return pickle.load(fobj) def main(): test = 0 file_name = 'objs.pickle' save(file_name, test) print(load(file_name)) if __name__ == '__main__': main()