一个极简极易用, "即读即用"的Python存储库介绍: SimpSave

引言

如何保存Python程序的数据?

数据库毫无疑问是最标准的做法.然而,对于我们大部分的学生项目乃至简单脚本而言,数十上百乃至就几条的数据量远远谈不上"大数据",哪怕是轻如TinyDB也许都可谓不够"便携".

Python原生的数据结构就足够强大足以应付我们日常中很多的应用场景.如果有一个简单且极其易用(几乎不用学习就能上手)的kv数据库,同时封装一些常用功能(如键的正则匹配,在不同目录的.py之间轻易的访问同一个数据库等),存的数据类型和读出来的数据类型一致能够"即读即用",能将对数据库的操作和对读写的值的操作合二为一,何尝不是一件美事?

由以上理由,项目SimpSave应运而生.如果项目对你有帮助的话,还请点点Star以表支持了:)

(所谓"即读即用"示例)

文档

简介

SimpSave 4.0 是一个轻量级的 Python 数据持久化库,现已升级为使用 .yml 文件进行存储 。从 .ini 切换到 .yml 带来了对 Unicode 和复杂数据结构的增强支持,无需再进行 UTF-8 或转义转换。

特性

  • 极致简单:整个项目代码行数不超过 200 行。
  • 易于使用:极简配置和直观的 API,便于快速集成。
  • 灵活轻量 :支持所有 Python 基本类型,包括 Unicode,无需额外依赖(仅需 PyYAML)。
  • 原生 YAML:完全原生支持 Unicode 和结构体------不再需要转义或编码技巧。

兼容 SimpSave 4.0 版本。


安装

SimpSave 4.0 已发布至 PyPI,可通过以下命令安装:

复制代码
pip install simpsave

**注意:**SimpSave 4.0 依赖 PyYAML 库,pip 会自动安装所需依赖。

在项目中使用 SimpSave:

javascript 复制代码
import simpsave as ss  ## 通常简写为 'ss'

原理

SimpSave 4.0 使用 .yml 文件的键值对存储 Python 基本类型变量。默认情况下,数据保存在当前工作目录下名为 __ss__.yml 的文件中。你也可以自定义文件路径。

唯一路径模式

和之前一样,SimpSave 支持独有的 :ss: 路径模式。如果文件路径以 :ss: 开头(如 :ss:config.yml),文件将保存到 SimpSave 安装目录,确保不同环境下的兼容性。

注意::ss: 模式要求通过 pip 安装 SimpSave。

SimpSave .yml 文件示例

yaml 复制代码
key1:
  value: Hello 世界
  type: str
key2:
  value: 3.14
  type: float
key3:
  value: [1, 2, 3, "中文", {"a": 1}]
  type: list

读取数据时,SimpSave 会自动将其还原为原始类型。SimpSave 4.0 完全支持 Python 的内置类型,包括 listdict 和 Unicode 字符串。


使用指南

写入数据

write 函数用于将键值对存储到指定的 .yml 文件:

python 复制代码
def write(key: str, value: any, *, file: str | None = None) -> bool:
    ...
参数说明:
  • key:要存储的键,必须是有效的 YAML 键。
  • value:要存储的值,必须为 Python 基本类型(如 intfloatstrlistdict)。
  • file:要写入的 .yml 文件路径,默认为 __ss__.yml,也可使用 :ss: 模式。
返回值:
  • 操作成功返回 True,否则返回 False
示例:
python 复制代码
import simpsave as ss
ss.write('key1', 'Hello 世界')      ## 写入 Unicode 字符串
ss.write('key2', 3.14)             ## 写入浮点数
ss.write('key3', [1, 2, 3, '中文']) ## 写入包含中文的列表

如果文件不存在,SimpSave 会自动创建。


读取数据

read 函数用于从指定的 .yml 文件中读取值:

python 复制代码
def read(key: str, *, file: str | None = None) -> any:
    ...
参数说明:
  • key:要读取的键。
  • file:要读取的 .yml 文件路径,默认为 __ss__.yml
返回值:
  • 返回指定键下存储的值,自动转换为原始类型。
示例:
python 复制代码
import simpsave as ss
print(ss.read('key1'))  ## 输出: 'Hello 世界'
print(ss.read('key2'))  ## 输出: 3.14

其他功能

检查键是否存在

has 函数用于判断某个键是否存在于 .yml 文件中:

python 复制代码
def has(key: str, *, file: str | None = None) -> bool:
    ...
示例:
python 复制代码
import simpsave as ss
print(ss.has('key1'))          ## 输出: True
print(ss.has('nonexistent'))   ## 输出: False

移除键

remove 函数用于从 .yml 文件中删除指定的键及其值:

python 复制代码
def remove(key: str, *, file: str | None = None) -> bool:
    ...
示例:
csharp 复制代码
import simpsave as ss
ss.remove('key1')  ## 删除键 'key1'

正则匹配键

match 函数用于通过正则表达式获取所有匹配的键值对:

python 复制代码
def match(re: str = "", *, file: str | None = None) -> dict[str, any]:
    ...
示例:
python 复制代码
import simpsave as ss
result = ss.match(r'^key.*')  ## 匹配所有以 'key' 开头的键
print(result)  ## 输出: {'key2': 3.14, 'key3': [1, 2, 3, '中文']}

删除整个文件

delete 函数用于删除整个 .yml 文件:

python 复制代码
def delete(*, file: str | None = None) -> bool:
    ...
示例:
ini 复制代码
import simpsave as ss
ss.delete(file='__ss__.yml')  ## 删除默认文件

总结

SimpSave 4.0 是一个简单、灵活、轻量级的库,适用于用 .yml 文件持久化存储 Python 基本数据类型。其易用的 API、原生 Unicode 支持以及对常见数据类型的兼容性,使它非常适合小型、低复杂度项目的数据持久化需求。

了解更多请访问 GitHub

相关推荐
xw337340956419 分钟前
scikit-learn工具介绍
python·机器学习·scikit-learn
NeoFii20 分钟前
Day 34:GPU训练与类的call方法
python·机器学习
中等生2 小时前
Python的隐形枷锁:GIL如何"绑架"了你的多线程梦想
后端·python
电商数据girl2 小时前
关于私域电商网站,接入电商API数据接口示例
运维·开发语言·网络·python·json·php
Ly2020Wj2 小时前
pytorch入门3:使用pytorch进行多输出手写数据集模型预测
人工智能·pytorch·python
码界筑梦坊2 小时前
90-基于Flask的中国博物馆数据可视化分析系统
python·信息可视化·flask
七七软件开发2 小时前
无人共享 app 系统架构分析
java·python·小程序·系统架构·php
WaterRun3 小时前
使用Python合并B站缓存视频(至.MP4): 库biliffm4s介绍
python