📅  最后修改于: 2023-12-03 14:49:45.672000             🧑  作者: Mango
在编程中,打印格式化表格是一项比较常见的任务。Python提供了多种方式和库来实现这个任务。下面介绍几种常用的方法。
使用字符串拼接的方式,将表格的每一行用'|'分隔,使用字符串的rjust()方法来控制每个单元格的宽度和对齐方式。
# 定义表头和表格内容
header = ['Name', 'Age', 'City']
rows = [['Alice', '25', 'New York'],
['Bob', '30', 'Los Angeles'],
['Charlie', '35', 'Chicago']]
# 计算每一列的最大宽度
widths = [max(len(str(row[i])) for row in rows + [header]) for i in range(len(header))]
# 打印表头
header_row = ' | '.join(header[i].rjust(widths[i]) for i in range(len(header)))
print(header_row)
# 打印分隔线
separator = '-+-'.join('-' * width for width in widths)
print(separator)
# 打印表格内容
for row in rows:
row_str = ' | '.join(str(row[i]).rjust(widths[i]) for i in range(len(row)))
print(row_str)
该代码的输出结果如下所示:
Name | Age | City
--------+-+-----------
Alice | 25 | New York
Bob | 30 | Los Angeles
Charlie | 35 | Chicago
使用textwrap和tabulate库可以快速实现格式化的表格输出。textwrap库可以将字符串按指定宽度进行自动换行,而tabulate库可以将二维数据转换为表格的形式。
在使用tabulate库之前,需要先使用textwrap库对表格内容进行自动换行,保证表格的每个单元格不会出现无法显示的内容。
import textwrap
from tabulate import tabulate
# 定义表头和表格内容
header = ['Name', 'Age', 'City']
rows = [['Alice', '25', 'New York'],
['Bob', '30', 'Los Angeles'],
['Charlie', '35', 'Chicago']]
# 将表格内容进行自动换行
rows_wrap = [[textwrap.fill(str(cell), width=20) for cell in row] for row in rows]
# 将自动换行后的数据转换为表格
table = tabulate(rows_wrap, headers=header, tablefmt='pipe')
print(table)
该代码的输出结果如下所示:
| Name | Age | City |
|:--------|:---:|:-----------------|
| Alice | 25 | New York |
| Bob | 30 | Los Angeles |
| Charlie | 35 | Chicago |
PrettyTable是一个强大的Python库,可以将任何数据格式化为可读性更强的表格形式。它支持单元格合并、排序、颜色输出等高级功能。
from prettytable import PrettyTable
# 定义表头和表格内容
header = ['Name', 'Age', 'City']
rows = [['Alice', '25', 'New York'],
['Bob', '30', 'Los Angeles'],
['Charlie', '35', 'Chicago']]
# 创建PrettyTable对象并添加表头
table = PrettyTable(header)
# 添加表格内容
for row in rows:
table.add_row(row)
print(table)
该代码的输出结果如下所示:
+---------+-----+-------------+
| Name | Age | City |
+---------+-----+-------------+
| Alice | 25 | New York |
| Bob | 30 | Los Angeles|
| Charlie | 35 | Chicago |
+---------+-----+-------------+
以上就是使用Python打印格式化表格的几种常用方法,可以根据实际情况选择适合自己的方式进行表格输出。