小墨の博客

梦想需要付诸行动,否则只能是梦

Python 使用 pickle / json 将变量保存成本地文件以及从文件中读取

(一)python 使用 pickle 将变量保存成本地文件以及从文件中读取

(二)python 使用 json 将变量保存成本地文件以及从文件中读取

(一)python 使用 pickle 将变量保存成本地文件以及从文件中读取

1. 在使用之前首先需要导入包:

import pickle

2. 我们定义保存变量和读取变量的函数。

# 保存变量
def save_variable(filename, v):
    f = open(filename, 'wb')
    pickle.dump(v, f)
    f.close()
    return filename
    
# 读取变量
def load_variavle(filename):
    f = open(filename, 'rb')
    r = pickle.load(f)
    f.close()
    return r

3.保存变量和读取变量操作。

# 保存变量:将变量results保存在results.txt文件中
filename = save_variable('results.txt', results)

# 读取变量:从results.txt中读取变量内容给results 
results = load_variavle('results.txt')

最后将代码放在一起,想用哪段用哪段。

import pickle

def save_variable(filename, v):
    f = open(filename, 'wb')
    pickle.dump(v, f)
    f.close()
    return filename

def load_variable(filename):
    f = open(filename, 'rb')
    r = pickle.load(f)
    f.close()
    return r

filename = save_variable('results.txt', results)
results = load_variavle('results.txt')

【备注】如果需要直接在项目中使用,在调用 load_variable 函数之前最好判断一下文件是否存在,类似这样:

import os

def load_variable(filename):
    filepath = os.path.join(save_path, filename)
    if not os.path.isfile(filepath):
        return None
    # some code ...


(二)python 使用 json 将变量保存成本地文件以及从文件中读取


【备注】使用json存储时,需要保证变量可以被序列化为json字符串,同时解析的时候需要保证能够正常解析(如果文件为空,或者json存在语法错误,解析时也会报错):



总结

综上,个人比较倾向于将两者同时引入到项目中,

开发时将pickle代码片段注释起来,使用json进行存储,这样可以实时观察保存的内容,方便调试,不过更容易出现文件编码问题、json保存/解析失败问题等;

部署到生产环境时将json代码片段注释起来,使用pickle进行存储,他可以存储不能序列化的变量内容,同时也不用担心文件编码的问题,不过就是查看比较麻烦,需要通过 load_variable 方法才可以调用。

本文 pickle 章节参考了以下文章:

https://www.cnblogs.com/ltwen/p/14679591.html

张小弟之家

本文链接:
文章标题:

本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work

尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。

    发表评论:

    搜索
    本文二维码
    标签列表
    站点信息
    • 文章总数:507
    • 页面总数:20
    • 分类总数:92
    • 标签总数:207
    • 评论总数:60
    • 浏览总数:219202

    | | |
    | |  Z-Blog PHP