📒 保存数据
本节介绍文件保存功能。
Recorder
可根据数据数量自动保存,也可以调用record()
或backup()
手动保存数据到文件。
Recorder()
与backup()
的区别在于:
前者会把缓存数据写入文件,且只能保存到set.path()
指定的路径。
后者备份时不写入缓存数据,可以每次指定保存路径。
✅️ 自动保存
当接收数据到达指定条数,会触发写入文件动作,同时清空缓存。
如果写入时文件被打开而无法写入,会自动等待文件关闭再写入。
设置为0
时不会自动保存。
说明
如果插入的是二维数据,数据条数以二维数据中的数据条数为准。
📌 创建对象时设置
在创建Recorder
对象时,可设置cache_size
参数,指定每接收多少条数据保存一次。
from DrissionRecord import Recorder
r = Recorder('data.xlsx', cache_size=100) # 设置每100条数据自动保存
📌 set.cache_size()
此方法用于设置缓存大小,即接收多少条数据就触发自动保存。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
size | int | 必填 | 缓存大小 |
返回类型 | 说明 |
---|---|
RecorderSetter | 设置对象 |
from DrissionRecord import Recorder
r = Recorder('data.xlsx')
r.set.cache_size(100)
✅️ 手动保存
使用record()
方法可在任意时候触发数据保存。
参数:无
返回类型 | 说明 |
---|---|
str | 完整的文件保存路径 |
from DrissionRecord import Recorder
r = Recorder('data.csv')
r.add_data(123)
r.record() # 手动调用写入方法
✅️ 自动备份
使用set.auto_backup()
设置自动备份后,程序会在每写入一定次数时触发自动备份,把当前文件备份到指定位置。
说明
ovrewrite
为False
时,不会覆盖已备份的文件,新文件的文件名末尾加上当前时间。
为False
则会覆盖原有文件。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
interval | int | None | 自动保存多少次时触发备份,为0 表示不自动备份,为None 时不修改已设置值(初始为0 ) |
folder | str Path | None | 备份文件存放文件夹路径,为None 时不修改已设置值(初始为'backup' ) |
overwrite | bool | None | 是否覆盖原有备份,为False 时每个文件名都添加当前时间,为None 时不修改已设置值(初始为False ) |
返回类型 | 说明 |
---|---|
RecorderSetter | 设置对象 |
from DrissionRecord import Recorder
r = Recorder('data.xlsx')
r.set.auto_backup(interval=5, folder='mybackup', overwrite=True)
✅️ 手动备份
主动调用backup()
即可把当前文件备份到指定位置。
调用backup()
会清空自动备份的计数。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
path | str Path | None | 备份文件存放文件夹路径,为None 使用内置路径(初始'backup' ) |
name | str | None | 保存的文件名,可不含后缀,为None 使用内置路径文件名 |
overwrite | bool | None | 是否覆盖同名文件,为False 时每次备份文件名添加当前时间,为None 使用内置设置 |
返回类型 | 说明 |
---|---|
str | 完整的文件保存路径,文件不存在时返回'' |
✅️ 注意事项
- 切勿在文件正在写入的时候关闭进程,以免造成文件损坏
- 程序结束时如缓存中还有数据,必须显式调用
record()
保存 - 在写入文件开始和结束时,默认会打印提示,提醒用户此时不要关闭进程。如须隐藏,可把
show_msg
参数设置为False
from DrissionRecord import Recorder
r = Recorder('data.xlsx')
r.set.show_msg(False)