跳到主要内容

📒 保存数据

本节介绍文件保存功能。

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()

此方法用于设置缓存大小,即接收多少条数据就触发自动保存。

参数名称类型默认值说明
sizeint必填缓存大小
返回类型说明
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()设置自动备份后,程序会在每写入一定次数时触发自动备份,把当前文件备份到指定位置。

说明

ovrewriteFalse时,不会覆盖已备份的文件,新文件的文件名末尾加上当前时间。 为False则会覆盖原有文件。

参数名称类型默认值说明
intervalintNone自动保存多少次时触发备份,为0表示不自动备份,为None时不修改已设置值(初始为0
folderstr
Path
None备份文件存放文件夹路径,为None时不修改已设置值(初始为'backup'
overwriteboolNone是否覆盖原有备份,为False时每个文件名都添加当前时间,为None时不修改已设置值(初始为False
返回类型说明
RecorderSetter设置对象
from DrissionRecord import Recorder

r = Recorder('data.xlsx')
r.set.auto_backup(interval=5, folder='mybackup', overwrite=True)

✅️ 手动备份

主动调用backup()即可把当前文件备份到指定位置。

调用backup()会清空自动备份的计数。

参数名称类型默认值说明
pathstr
Path
None备份文件存放文件夹路径,为None使用内置路径(初始'backup'
namestrNone保存的文件名,可不含后缀,为None使用内置路径文件名
overwriteboolNone是否覆盖同名文件,为False时每次备份文件名添加当前时间,为None使用内置设置
返回类型说明
str完整的文件保存路径,文件不存在时返回''

✅️ 注意事项

  • 切勿在文件正在写入的时候关闭进程,以免造成文件损坏
  • 程序结束时如缓存中还有数据,必须显式调用record()保存
  • 在写入文件开始和结束时,默认会打印提示,提醒用户此时不要关闭进程。如须隐藏,可把show_msg参数设置为False
from DrissionRecord import Recorder

r = Recorder('data.xlsx')
r.set.show_msg(False)