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]))
相关推荐
zhangrelay11 小时前
新版|-|单片机原理与接口技术-2026持续改进优化-从MEGA2560-ESP32与Wokwi到ROS2-Lyrical与具身智能栈
笔记·单片机·嵌入式硬件·学习
叼烟扛炮15 小时前
Linux 学习笔记(三十三):线程互斥——互斥锁(Mutex)与死锁
linux·运维·服务器·笔记·学习·1024程序员节
m4Rk_16 小时前
【论文阅读】Agent 记忆机制(113):Agentic Memory Management——从“检索相关信息”走向“管理 Agent 内部记忆”
论文阅读·人工智能·学习·开源·github
辣知17 小时前
辣知·化智92 《山海经》里的史前密码
学习
鬼手点金18 小时前
KV Cache 未必是一次性的:可编辑、可组合的“笔记”
java·人工智能·笔记·学习·自动化·1024程序员节
kyrie_sakura19 小时前
大模型学习18 大模型学习 - LangChain2_Model I/O
学习·自然语言处理
宝绿特塑业再生科技19 小时前
板材收缩率不稳,户外家具装配尺寸为何对不上:从切割尺寸变化到接缝不一的系统性排查与对策
笔记·科技·学习·生活·户外家具·hdpe再生颗粒·hdpe
~城南花已开~20 小时前
Intel E810 SR-IOV VF Spoofcheck 防伪造测试-KVM3
服务器·网络·笔记·学习·ubuntu·etl工程师
我命由我123451 天前
6-3.Python 异常处理 - 异常处理进阶(else 块与 finally 块、异常传递、自定义异常)
开发语言·前端·数据库·后端·python·学习·java-ee
外收内放1 天前
FastAPI猜字谜实战(8):收官
开发语言·python·学习·fastapi