(一)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
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。