🐨 DBRecorder
DBRecorder
用于记录数据到数据库,用法与Recorder
一致。支持 sqlite,文件格式为 db。
它可自动创建数据库文件、表、列,使用时无须事先创建数据库。
🐘 创建对象
创建对象时,如指定了数据库文件路径,且没有传入table
参数,会自动指定第一个数据表名称。
初始化参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
path |
str Path |
None |
文件路径,若不存在会自动创建,如存在则在最后追加数据 |
cache_size |
int |
None |
缓存数据条数,为0 时不自动记录数据 |
table |
str |
None |
默认表名称 |
示例:
➕ 添加数据
使用add_data()
添加数据,用法与Recorder
基本一致,下面只展示不一样的地方。
✔ 指定默认表
可以对DBRecorder
对象设置默认表,每条数据都会添加到该表。
from DataRecorder import DBRecorder
d = DBRecorder(path='data.db', table='user') # 声明时指定
# 或
d = DBRecorder(path='data.db')
d.table = 'user' # 对对象赋值
✔ 每条数据指定表
也可以在每次添加数据时指定表名。
from DataRecorder import DBRecorder
d = DBRecorder(path='data.db')
d.add_data({'name':'张三', 'age':20}, table='user1')
d.add_data({'name':'李四', 'age':25}, table='user2')
d.record()
✔ 数据格式
与Recorder
一样,DBRecorder
也支持灵活的数据格式,但推荐使用dict
格式。
如上面的示例,dict
格式可以为不同列指定数据。如果不存在该列,程序会自动创建。
如果使用其它格式,则会从左到右按顺序填入到表的列里。
接收tuple
格式数据:
from DataRecorder import DBRecorder
d = DBRecorder(path='data.db', table='user')
d.add_data(('张三', 20))
d.record()
注意
如果是新的 db 文件,第一次录入数据必须用dict
格式,以便程序自动创建列。
✔ 接收多行数据
DBRecorder
也可以接收二维数据,并逐行添加到指定表中。
💾 写入文件
这部分内容与Recorder
一致。详见该章节。
🗂️ 备份文件
这部分内容与Recorder
一致。同样支持自动备份和手动备份。
♾️ DBRecorder
对象的方法
📌 add_data()
此方法用于添加数据到缓存,可接收一个、一行或多行数据。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
data |
Any |
必填 | 可接收任意格式,接收一维list 、tuple 和dict 时记录为一行,接收二维数据时记录为多行 |
table |
str |
None |
数据要添加到的表名 |
返回:None
📌 run_sql()
此方法用于执行sql语句并返回结果。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
sql |
str |
必填 | sql 语句 |
single |
bool |
True |
查询时是否只获取一个结果 |
commit |
bool |
False |
是否提交到数据集 |
返回类型 | 说明 |
---|---|
tuple list |
多个结果时返回list ,单个结果时返回tuple |
None |
没有结果时返回None |
📌 record()
此方法用于把数据记录到文件,然后清空缓存。
参数: 无
返回类型 | 说明 |
---|---|
str |
文件路径 |
📌 backup()
此方法用于当前记录的文件保存一份副本。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
path |
str Path |
'backup' |
文件夹路径,默认保存到当前路径下'backup' 文件夹 |
name |
str |
None |
保存的文件名,可不包括扩展名,为None 使用记录目标指定的文件名 |
返回类型 | 说明 |
---|---|
str |
文件路径 |
📌 clear()
此方法用于清空现有缓存。
参数:无
返回:None
⚙️ DBRecorder
对象参数设置
DBRecorder
对象的设置使用set.****()
的方式进行。
可进行链式操作,如set.fit_head().cache_size(30)
。
📌 set.path()
此方法用于设置文件路径。如不指定table
,会自动获取数据库第一个数据表名称。
更改时会自动保存缓存数据到文件。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
path |
str Path |
必填 | 文件路径 |
table |
str |
None |
数据表名称 |
返回: 当前设置对象
📌 set.cache_size()
此方法用于设置缓存大小,指定采集多少条自动记录到文件,为0
时不自动记录。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
size |
int |
必填 | 缓存数据条数 |
返回: 当前设置对象
📌 set.auto_backup()
此方法用于设置自动备份相关参数。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
interval |
int |
None |
自动保存多少次时触发备份,为0 表示不自动备份,为None 时不修改已设置值(初始为0) |
path |
str Path |
None |
备份文件存放路径,为None 时不修改已设置值(初始为'backup' ) |
new_name |
bool |
None |
是否用新名称备份,为None 时不修改已设置值(初始为True ) |
返回: 当前设置对象
📌 set.table()
此方法用于处理 xlsx 文件时指定数据表。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
name |
str |
必填 | 数据表名称 |
返回: 当前设置对象
📌 set.before()
此方法用于设置对象before
参数内容,设置前会先保存缓存数据。
before
内容的用法将在 “进阶用法” 章节说明。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
before |
Any |
必填 | 每行数据前要添加的内容,单个数据或列表数据皆可 |
返回: 当前设置对象
📌 set.after()
此方法用于设置对象after
参数内容,设置前会先保存缓存数据。
after
内容的用法将在 “进阶用法” 章节说明。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
after |
Any |
必填 | 每行数据后要添加的内容,单个数据或列表数据皆可 |
返回: 当前设置对象
📌 set.encoding()
此方法用于设置编码格式。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
encoding |
str |
必填 | 编码名称 |
返回: 当前设置对象
📌 set.show_msg()
此方法用于设置是否显示运行信息。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
on_off |
bool |
必填 | bool 类型表示开或关 |
返回: 当前设置对象
🔣 DBRecorder
对象的属性
📌 path
此属性以字符串方式返回当前记录的文件路径。可赋值设置。更改时会自动保存缓存数据到文件。
类型:str
📌 data
此属性返回当前保存在缓存里的数据。
类型:dict
📌 cache_size
此属性返回缓存的大小,表示记录的条数。
类型:int
📌 table
此属性返回当前处理的数据表。
类型:str
📌 encoding
此属性返回当前文件的编码方式,默认为'utf-8'
,可赋值设置。
类型:str
📌 before
此属性返回当前对象设置的before
内容,before
参数内容的用法将在 “进阶用法” 章节说明。
类型:Any
📌 after
此属性返回当前对象设置的after
内容,after
参数内容的用法将在 “进阶用法” 章节说明。
类型:Any
📌 show_msg
此属性用于设置是否打印程序运行时产生的提示信息。
类型:bool