所以这是我的代码,我想将值“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/

10-14 19:33