所以这是我的代码,我想将值“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)
现在这个函数返回它从泡菜文件中读取的值。
像这样调用它:
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()
关于python - 在pickle中保存整数并调用它们,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34220150/