当前位置:  开发笔记 > 编程语言 > 正文

在pickle中保存整数并调用它们

如何解决《在pickle中保存整数并调用它们》经验,为你挑选了1个好方法。

所以这是我的代码,我想将值'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.(很可能忽略了一些)

所以我的问题是,我怎么能解决用斜体字发出的问题?



1> Mike Müller..:

全局变量testtest函数内部无关 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()


@ShadowRanger请不要'全球'.使用返回值.
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有