📒 表头的使用
本节介绍表头相关内容。除 txt 文件,所有格式都支持设置表头。
写入数据时,可根据表头自动匹 配列,读取数据时,可根据表头生成dict数据。
✅️ header属性
Recorder对象的header属性获取当前文件(数据表)的表头。
表头是个字典,格式是{列序号: 表头值}。
如{1: '序号', 2: '姓名', 3: '性别', 4: '年龄'}。
xlsx 格式文件的header属性获取的是set.table()指定的数据表表头,默认为活动表格。
其它格式文件或者自身表头。
示例,有如下 csv 文件:
| 序号 | 姓名 | 性别 | 年龄 |
|---|---|---|---|
| 1 | 张三 | 男 | 20 |
| 2 | 李四 | 女 | 21 |
from DrissionRecord import Recorder
r = Recorder('data.csv')
print(r.header)
打印结果:
{1: '序号', 2: '姓名', 3: '性别', 4: '年龄'}
✅️ 获取和设置表头
📌 自动获取表头
默认情况下,Recorder读取文件时会自动从设置的行获取表头(初始第一行)。
可通过set.header_row()设置表头行号。
如果设置为0,以列号为表头值,如'A'。
💡 set.header_row()
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
num | int | 必填 | 行号,设置0时以列号为表头值 |
table | strNoneTrue | None | 表名,仅 xlsx 文件生效,为True表示活动数据表,为None表示不改变设置 |
| 返回类型 | 说明 |
|---|---|
RecorderSetter | 设置对象 |
📌 设置表头
可以用set.header()手动设置Recorder对象的表头。
可选择是否同时写入文件(仅 csv 和 xlsx)生效。
写入文件时,会用新表头替换指定行数据。
💡 set.header()
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
header | listtuple | 必填 | 表头值组成的列表 |
table | strNoneTrue | None | 表名,只 xlsx 格式文件有效,为True表示活动数据表,为None表示不改变设置 |
to_file | bool | True | 是否写入到文件 |
row | int | None | 指定写入文件的行号,不改 变对象已设置的header_row属性,to_file不为True时无效 |
| 返回类型 | 说明 |
|---|---|
RecorderSetter | 设置对象 |
from DrissionRecord import Recorder
r = Recorder('data.csv')
r.set.header(['序号', '姓名', '性别', '年龄'])
✅️ 自动更新表头
在录入dict数据时,数据中有表头不存在的列,可使用set.auto_new_header()设置自动添加到表头。
说明
- 此设置初始时是
False - 只有 xlsx 和 csv 文件有效
- 自动添加的表头只在设置中有效,不会添加到文件表头列
💡 set.auto_new_header()
| 参数名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
on_off | bool | True | 开或关 |
| 返回类型 | 说明 |
|---|---|
RecorderSetter | 设置对象 |
from DrissionRecord import Recorder
r = Recorder('data.xlsx')
r.set.auto_new_header(True)