🐻 ByteRecorder
ByteRecorder
专门用于记录二进制数据到文件。
用法和Recorder
类似,每次add_data
只接收一段二进制数据,可以指定数据在文件中要写入的位置。
ByteRecorder
可用于多线程文件下载、记录监听数据流等场景。支持任意后缀文件。
优点:
- 高度集成功能,简化代码逻辑
- 接收和写入数据分离,避免多线程时写入文件冲突
🐘 创建对象
初始化参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
path |
str Path |
None |
文件路径,若不存在会自动创建,如存在则在最后追加数据 |
cache_size |
int |
None |
缓存数据条数,为0 时不自动记录数据 |
示例:
➕ 添加数据
ByteRecorder
只能接收二进制格式数据,且一次接收一条数据,可指定数据在文件中的位置。如不指定,默认添加到文件末尾。
注意
指定位置添加数据,会覆盖该位置后面已有数据。
文件内容:
该文件首先添加了数据 abcd,然后在 2 的位置添加了 1234,覆盖了后面的 cd。
💾 写入文件
这部分内容与Recorder
一致。详见该章节。
🗂️ 备份文件
这部分内容与Recorder
一致。同样支持自动备份和手动备份。
💡 示例
这段示例演示用多线程写入多行数据,来模拟多线程下载文件。
from DataRecorder import ByteRecorder
from threading import Thread
def add_data(num: int, recorder: ByteRecorder):
data = str(num) * 10 + '\n'
data = bytes(data, encoding='utf-8')
seek = num * 11
recorder.add_data(data, seek)
def main():
b = ByteRecorder('data.csv')
for i in range(5):
Thread(target=add_data, args=(i, b)).start()
if __name__ == '__main__':
main()
注意
多线程写入数据时,ByteRecorder
对象的声明要放在方法体内。
文件内容:
♾️ ByteRecorder
对象的方法
📌 add_data()
此方法用于添加数据到缓存,可接收一个、一行或多行数据。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
data |
Any |
必填 | 可接收任意格式,接收一维list 、tuple 和dict 时记录为一行,接收二维数据时记录为多行 |
返回:None
📌 record()
此方法用于把数据记录到文件,然后清空缓存。
参数: 无
返回类型 | 说明 |
---|---|
str |
文件路径 |
📌 backup()
此方法用于当前记录的文件保存一份副本。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
path |
str Path |
'backup' |
文件夹路径,默认保存到当前路径下'backup' 文件夹 |
name |
str |
None |
保存的文件名,可不包括扩展名,为None 使用记录目标指定的文件名 |
返回类型 | 说明 |
---|---|
str |
文件路径 |
📌 clear()
此方法用于清空现有缓存。
参数:无
返回:None
⚙️ ByteRecorder
对象参数设置
ByteRecorder
对象的设置使用set.****()
的方式进行。
可进行链式操作,如set.fit_head().cache_size(30)
。
📌 set.path()
此方法用于设置文件路径,更改时会自动保存缓存数据到文件。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
path |
str Path |
必填 | 文件路径 |
返回: 当前设置对象
📌 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.show_msg()
此方法用于设置是否显示运行信息。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
on_off |
bool |
必填 | bool 类型表示开或关 |
返回: 当前设置对象
🔣 ByteRecorder
对象的属性
📌 path
此属性以字符串方式返回当前记录的文件路径。可赋值设置。更改时会自动保存缓存数据到文件。
类型:str
📌 type
此属性以字符串方式返回当前文件的类型。可赋值设置,即可无视文件后缀指定记录格式。
类型:str
📌 data
此属性返回当前保存在缓存里的数据。
类型:list
📌 cache_size
此属性返回缓存的大小,表示记录的条数。
类型:int
📌 show_msg
此属性用于设置是否打印程序运行时产生的提示信息。
类型:bool