Tabulate:轻松打印美化的表格数据

B站影视 内地电影 2025-03-30 08:00 1

摘要:Tabulate 是一个用于格式化表格数据的 Python 库,同时也提供了命令行工具,代码仓库位于 https://github.com/astanin/python-tabulate。Tabulate 功能丰富,使用简单,能很好地完成小表格的美化打印和输出

在数据处理展示的世界中,表格是一种常见且重要的形式。无论是在日常的数据分析报告中,还是在软件开发的日志输出里,整齐美观的表格都能让信息更加清晰易读。

Tabulate,则是一个专注于格式化表格数据的 Python 库和命令行工具,能很好地在命令行或文本文件中展示美化的表格。

Tabulate 是一个用于格式化表格数据的 Python 库,同时也提供了命令行工具,代码仓库位于 https://github.com/astanin/python-tabulate。Tabulate 功能丰富,使用简单,能很好地完成小表格的美化打印和输出。

Tabulate 易于使用,只需调用一个函数就能完成表格数据的格式化,能根据数据自动调整间距和对齐方式等,支持文本和数字混合的数据,支持不同语言文字的间距调整,大大提升了数据展示的可读性。Tabulate 提供了超过 30 种表格格式,能根据自身的需求进行格式化输出,可以很便利地作为其他数据处理工具的输入,便于后续编辑或转换。

Tabulate 提供了丰富的配置,既可以使用默认配置快速完成格式化,也可以自行调整配置实现完全符合自身需求的输出,包括对齐方式、空格处理、分隔符、字符串格式化、数字格式化、表头等,均可以自行扩展控制。

Tabulate 是一个 Python 库,使用 pip 完成安装:

pip install tabulate

除了作为 Python 库,tabulate 也会作为命令行工具安装到系统中,可以在命令行中直接运行使用:

tabulate --help

部分表格数据中包含宽字符,如中文等,它们的宽度计算与一般字符不同,Tabulate 也通过wcwidth 库提供了支持,使用以下命令一起安装即可:

pip install tabulate[widechars]

Tabulate 易于使用,作为 Python 库仅仅提供了一个函数 tabulate,其必传的参数是表格数据,数据类型支持包括二维列表、字典列表、可迭代对象的字典、dataclass 的列表、二维 Numpy 数组、Numpy 记录数组,和 Pandas DataFrame 等。最简单的使用方式如下:

>>> from tabulate import tabulate>>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6],... ["Moon",1737,73.5],["Mars",3390,641.85]]>>> print(tabulate(table))----- ------ Sun 696000 1.9891e+09Earth 6371 5973.6Moon 1737 73.5Mars 3390 641.85----- ------

从 tabulate 库中引入 tabulate 函数,提供一个二维列表作为表格数据,就能生成格式化后的表格可视化数据,并使用 print 打印到命令行显示。

tabulate 函数支持 headers 参数,可以指定表头。如果 headers 提供的是一个字符串列表,其就会作为表头的每一列展示。而如果提供 "firstrow" 作为参数值,就会把表格数据的第一行作为表头进行展示:

>>> print(tabulate([["Name","Age"],["Alice",24],["Bob",19]],... headers="firstrow"))Name Age------ -----Alice 24Bob 19

而如果表格数据是字典的列表或 Pandas DataFrame 的话,还可以提供 "keys" 作为 headers,把字段的每一个 key 作为表头:

>>> print(tabulate({"Name": ["Alice", "Bob"],... "Age": [24, 19]}, headers="keys"))Name Age------ -----Alice 24Bob 19

Tabulate 提供了超过 30 中表格格式,默认使用的是 simple,其对应 Pandoc Markdown 扩展中的 simple_tables,仅对表头和表格数据划线分割。常用的格式包括 pretty,其提供了类似于 PrettyTables 库所输出的格式:

>>> print(tabulate(table, headers, tablefmt="pretty"))+-------+-----+| item | qty |+-------+-----+| spam | 42 || eggs | 451 || bacon | 0 |+-------+-----+

Tabulate 还提供了 LaTex 格式,能够创建用于 LaTex 脚本中的表格:

>>> print(tabulate(table, headers, tablefmt="latex"))\begin{tabular}{lr}\hline item & qty \\\hline spam & 42 \\ eggs & 451 \\ bacon & 0 \\\hline\end{tabular}

Tabulate 支持数字的智能对齐,对于浮点数默认使用它们的小数点进行对齐,而整数则向右对齐,可以通过 numalign 选项进行自定义覆盖:

>>> print(tabulate([[1.2345],[123.45],[12.345],[12345],[1234.5]], numalign="right"))------1.2345123.4512.345 123451234.5------

Tabulate 是一个功能强大且易于使用的 Python 库,它为我们提供了一种简单而高效的方式来处理和展示表格数据。通过其简洁的 API,开发者可以快速将各种数据转换为美观易读的表格形式,无需手动编写复杂的格式化代码。

Tabulate 作为一个使用的工具库,用途广泛。在软件开发中,它可以用于日志输出、调试信息展示等,让开发者能够更直观地查看程序运行过程中的数据;而在数据分析种,可以很简单地可视化分析过程中的中间结果,方便对数据进行观察和分享。

来源:每日开源代码

相关推荐