python工作空间数据_全部保存与加载的一种办法

该文章介绍了一种利用Python的dill库保存和加载工作空间变量的方法。通过获取工作区变量名,使用dill.dump和dill.load,将每个变量保存为单独的pkl文件,然后在需要时重新加载。主要功能包括创建保存数据的文件夹、保存工作空间数据和加载工作空间数据的函数。
摘要由CSDN通过智能技术生成

参考文章:(数据科学学习手札142)dill:Python中增强版的pickle

主要思路:获取工作区变量名称,用dill.dump与dill.load结合循环完成数据的保存与加载。

话不多说,直接给上代码:

# 导入dill库和os库
import dill
import os


# 在当前目录下新建一个workspace_datafile文件夹
def new_folder(folder_name):
    if not os.path.exists(folder_name):
        os.mkdir(folder_name)


# 工作空间数据存储
def save_workplace_data(folder_name):
    variable_names = list(globals().keys())  # 读取工作区的变量名称
    items_to_remove = ['new_folder', 'main', 'load_workplace_data', 'save_workplace_data']  # 去除该文件产生的变量数据
    for item in items_to_remove:
        variable_names.remove(item)
    dill.dump(variable_names, open(os.path.join(folder_name, "variable_names.pkl"), "wb"))  # 保存变量名称,为加载数据作索引文件
    # 构建一个循环,按顺序依次保存工作区的变量数据,每个变量数据保存为一个.pkl文件,文件名字以变量名来命名
    for name in variable_names:
        dill.dump(globals()[name], open(os.path.join(folder_name, name + ".pkl"), "wb"))


# 工作空间数据存加载
def load_workplace_data(folder_name):
    with open(os.path.join(folder_name, "variable_names.pkl"), "rb") as f:
        variable_names = dill.load(f)
    for name in variable_names:
        globals()[name] = dill.load(open(os.path.join(folder_name, name + ".pkl"), "rb"))


# 主函数 以保存数据为例
def main():
    folder_name = "workspace_datafile1"
    new_folder(folder_name)
    save_workplace_data(folder_name)
    # load_workplace_data(folder_name)


if __name__ == "__main__":
    main()

数据保存

把上述代码放入一个新的.py文件,全选代码,右键选择执行python控制台中的选中内容;运行后会在当前目录下形成一个新的文件夹
所形成的文件夹
其中有许多.pkl文件,每一个文件存储一个变量的数据。

数据加载

# 主函数 以数据加载为例
def main():
    folder_name = "workspace_datafile1"
    load_workplace_data(folder_name)

if __name__ == "__main__":
    main()

即可。

遇到任何问题欢迎大家在评论区讨论~
若给你提供了帮助,请点赞+收藏!!!这对我真的很重要,谢谢啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值