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]))
相关推荐
留白_8 分钟前
代运营面试问答
学习
是隼人11 分钟前
buuctf-pwn PWN8题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
ps酷教程1 小时前
数据权限DataPersmission
java·学习
无敌贵点大王1 小时前
RTThread学习记录10——C语言实现面向对象的编程
c语言·stm32·学习·链表
程序员yu2 小时前
数智码力:Python作用域完全梳理,全局变量局部变量不再混乱
开发语言·python·学习
传奇开心果编程3 小时前
【ArkUI 练中学】第5课:路由导航与页面跳转
学习·华为·前端框架
传奇开心果编程4 小时前
【仓颉语言基础语法学与练】第1课:从零开始
开发语言·学习·华为
M78佐菲4 小时前
ARM学习笔记(三)
linux·arm开发·笔记·嵌入式硬件·学习
传奇开心果编程4 小时前
【ArkUI 练中学】第4课:高级布局与列表性能优化
学习·华为·前端框架
dtq04244 小时前
数据结构 - 栈
c语言·数据结构·学习