tabulate学习

tabulate学习

一、什么是tabulate

tabulate是 Python 打印格式化表格的库,支持列表、字典、DataFrame 等数据,输出美观的控制台表格,支持 markdown、html、latex、grid 等十几种格式。比较适用于命令行输出表格类型。

使用的初衷是因为笔者喜欢使用markdown做笔记,但是python输出的表格类型的结果整理到markdown比较麻烦

二、下载

bash 复制代码
pip install tabulate

三、输出表格

python 复制代码
from tabulate import tabulate

data = [
    ["001", "你是1", "厉害的1"],
    ["002", "你是2", "厉害的2"],
    ["003", "你是3", "厉害的3"]
]
# 表头
headers = ["编号", "列1", "列2"]

# 打印表格
print(tabulate(data, headers=headers, tablefmt="grid"))

输出结果如下

tex 复制代码
+------+------+------+
|   编号 | 列1   | 列2   |
+======+======+======+
|  001 | 你是1  | 厉害的1 |
+------+------+------+
|  002 | 你是2  | 厉害的2 |
+------+------+------+
|  003 | 你是3  | 厉害的3 |
+------+------+------+

支持的类型

参数 效果 适用场景
simple 极简横线 快速调试
grid 实线边框 控制台日志
fancy_grid 美化圆角边框 展示输出
github Markdown 表格 无自动对齐空格,所有单元格紧贴竖线
pipe Markdown 表格 全去掉多余空格,最小体积,纯管道分隔
html HTML 表格 网页输出
latex Latex 代码 论文报告(latex 格式)

四、可以整理的表格类型

4.1 二维列表类型

4.2 字典类型

python 复制代码
from tabulate import tabulate

data = [{'编号': '001', '列1': '你是1', '列2': '厉害的1'},
        {'编号': '002', '列1': '你是2', '列2': '厉害的2'},
        {'编号': '003', '列1': '你是3', '列2': '厉害的3'}]

# 打印表格
print(tabulate(data, headers='keys', tablefmt="fancy_grid"))

4.3 DataFrame类型

python 复制代码
from tabulate import tabulate
import pandas

data = pandas.DataFrame({
    "编号": ["001", "002", "003"],
    "列1": ["你是1", "你是2", "你是3"],
    "列2": ["厉害的1", "厉害的2", "厉害的3"]
})

# 打印表格 , showindex=False  不输出行索引
print(tabulate(data, headers='keys', tablefmt="fancy_grid", showindex=False))

五、常用参数

  1. showindex=True/False:是否显示行号

    python 复制代码
    print(tabulate(data, headers=headers, showindex=True))
  2. numalign="left"/"right"/"center":数字对齐方式

  3. stralign="center":文字居中

    python 复制代码
    print(tabulate(data, headers=headers, stralign="center", numalign="center"))
  4. floatfmt=".2f":浮点数保留 2 位小数

    python 复制代码
    data = [["A", 1234.567], ["B", 89.1]]
    print(tabulate(data, headers=["列1","列2"], floatfmt=".2f"))
  5. maxcolwidths=10,20,8:限制每列最大宽度,长文本自动换行

    python 复制代码
    print(tabulate(data, headers=headers, maxcolwidths=[8, 30, 10]))
相关推荐
子非鱼94271 小时前
06-Flutter 鸿蒙实战 06:上传后处理流程,照片识别、故事生成和状态刷新
学习·flutter·华为·harmonyos
天天爱吃肉82182 小时前
# 商用车多体动力学整车仿真学习笔记(开篇总览)
人工智能·笔记·python·功能测试·学习·汽车
一起努力啊~3 小时前
DataWhale组队学习笔记--llm-algo-leetcode(三)
笔记·学习·llm
云空3 小时前
《Three.js 可操控3D魔方(键盘转动+打乱+复原)》
javascript·学习·游戏·3d·three.js
kdxiaojie4 小时前
Linux 驱动研究 —— V4L2 (3)
linux·运维·笔记·学习
十月的皮皮4 小时前
C语言学习笔记20260717-预处理机制
c语言·笔记·学习
Zzj_tju4 小时前
Alignment Science 与可控生成:偏好学习、宪法式训练和可验证对齐
人工智能·学习·语言模型
其实防守也摸鱼5 小时前
运维--ip单日获取去重数据量超过500条
运维·学习·tcp/ip·安全·web安全·安全威胁分析·工具
pixcarp6 小时前
GMP调度模型和GC垃圾回收机制解析
后端·学习·golang·内存管理·gc·gmp