基于 python 的轻量外置字典模块: Staticed v1.2.0
欢迎使用 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
# 清空数据文件