将数据字典永久储存!Staticed:基于python的轻量模块

欢迎使用 Staticed

Staticed 外置字典开发基于Pickle,这是一个对初学者或者追求动态调用数据的开发者及其友好的轮子,如果你想学习如何使用 Staticed 模块, 可以仔细阅读这篇文章,了解一下 Staticed 的基本使用方法。

新的改变

Staticed v1.2.0 版本对比 v1.1.0 版本,代码的错误处理更加清晰,处理结果返回值进行简化,不再返回错误信息

模块简介

当我们想储存少量数据到外部文件,或者对程序的参数进行永久性的设置,数据库无疑是通用解决方案,又或者使用 csv,json 文件,但是用起来并不是非常方便,也许他们的功能非常强大,但代码量同样是对应的。在Staticed 看来如果只是想简单的储存数据或者进行设置,完全没有必要进行这么繁琐的操作,使用 Staticed 仅仅几行代码就能够处理这些内容。

Staticed 方法参数

方法名参数方法作用
staticed.load()file_path:str创建 Staticed 对象
load.load()self, file_path:str静态获取pkl文件字典内容 (不常用)
load.save()self, dict_data:dict, file_path:str静态储存pkl文件字典内容 (不常用)
select()key_name:str查询字典元素
update()key_name:str, value:var修改字典元素
remove()key_name:str删除字典元素
clear()清空字典

实例展示

import staticed
#导入Staticed模块

staticed.load.load(staticed.load, "dictFileName")
# 静态获取pkl文件字典内容 (不常用), 返回值:dict|None|False

staticed.load.save(staticed.load, "dictFileName", dict_data)
# 静态储存pkl文件字典内容 (不常用), 返回值:True|False

demo_dict = staticed.load("dictFileName")
# 创建 Staticed 对象, 返回值:Staticed 对象

demo_dict.select("key_name")
# 查询字典元素, 返回值:value|None|False

demo_dict.update("key_name", value)
# 修改字典元素, 返回值:True|False

demo_dict.remove("key_name")
# 删除字典元素, 返回值:True|False

demo_dict.clear()
# 清空字典, 返回值:True|False

Staticed 源码

PS:由于作者加速器到期了,懒于上传 GitHub, 所以大家复制过去用吧, 将源码粘贴到py文件,命名为staticed[#偷笑]

import pickle
import os


class load:
    path = None  # 数据文件名称

    def __init__(self, file_path):
        try:
            self.path = file_path
            if not os.path.exists(self.path + '.pkl'):
                with open(self.path + '.pkl', "wb") as dict_file:
                    pickle.dump(dict(), dict_file, pickle.HIGHEST_PROTOCOL)
        except Exception as e:
            print(e, e.__traceback__.tb_lineno)

    # 初始化数据文件

    def load(self, file_path=None):
        try:
            if file_path:
                with open(file_path + '.pkl', 'rb') as dict_file:
                    return pickle.load(dict_file)
            elif not file_path:
                with open(self.path + '.pkl', 'rb') as dict_file:
                    return pickle.load(dict_file)
        except FileNotFoundError:
            return None
        except Exception as e:
            print(e.__traceback__.tb_lineno)
            return False

    # 加载数据文件

    def save(self, dict_data, file_path=None):
        try:
            if file_path:
                with open(file_path + '.pkl', 'wb') as dict_file:
                    pickle.dump(dict_data, dict_file, pickle.HIGHEST_PROTOCOL)
            elif not file_path:
                with open(self.path + '.pkl', 'wb') as dict_file:
                    pickle.dump(dict_data, dict_file, pickle.HIGHEST_PROTOCOL)
        except FileNotFoundError:
            return None
        except Exception as e:
            print(e.__traceback__.tb_lineno)
            return False
        else:
            return True

    # 保存数据文件

    def select(self, key_name):
        try:
            data = self.load()
            value = data.get(key_name)
            if value:
                return value
            else:
                return None
        except Exception as e:
            print(e, e.__traceback__.tb_lineno)
            return False

    # 查询数据文件

    def update(self, key_name, value):
        try:
            data = self.load()
            data[key_name] = value
            self.save(data)
        except Exception as e:
            print(e, e.__traceback__.tb_lineno)
            return False
        else:
            return True

    # 更新数据文件

    def remove(self, key_name):
        try:
            data = self.load()
            del data[key_name]
            self.save(data)
        except KeyError:
            return False
        except Exception as e:
            print(e, e.__traceback__.tb_lineno)
            return False

    # 删除数据值

    def clear(self):
        try:
            data = dict()
            self.save(data)
        except Exception as e:
            print(e, e.__traceback__.tb_lineno)
            return False
        else:
            return True

    # 清空数据文件

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值