欢迎访问宙启技术站
智能推送

在Python中使用prettytable库创建自适应宽度的表格

发布时间:2024-01-01 11:59:28

在Python中,我们可以使用prettytable库创建自适应宽度的表格。prettytable是一个简单的用于构建表格的库,具有一些美化表格的功能。下面是一个使用prettytable库创建自适应宽度的表格的示例代码:

from prettytable import PrettyTable

# 创建表格对象
table = PrettyTable()

# 添加表头
table.field_names = ["姓名", "年龄", "职业"]

# 添加数据行
table.add_row(["张三", 25, "工程师"])
table.add_row(["李四", 30, "教师"])
table.add_row(["王五", 35, "医生"])

# 设置表格样式
table.align = "l"  # 左对齐
table.border = True  # 显示边框
table.header_style = "upper"  # 表头字母大写

# 打印表格
print(table)

运行以上代码,输出结果如下:

+------+----+--------+
| 姓名 | 年龄 |  职业  |
+------+----+--------+
| 张三 | 25 | 工程师 |
| 李四 | 30 | 教师   |
| 王五 | 35 | 医生   |
+------+----+--------+

上述代码创建了一个简单的表格,包含三列:姓名、年龄和职业。添加了三行数据,并设置了表格的对齐、边框和表头样式。

另外,prettytable库还支持动态调整表格的列宽以适应数据的长度。我们可以通过调用table._min_width方法来实现。下面是一个示例代码:

from prettytable import PrettyTable

# 创建表格对象
table = PrettyTable()

# 添加表头
table.field_names = ["姓名", "年龄", "职业"]

# 添加数据行
table.add_row(["张三", 25, "工程师"])
table.add_row(["李四", 30, "教师"])
table.add_row(["王五", 35, "医生"])

# 获取每列数据的最大宽度
max_widths = [max([len(str(row[i])) for row in table._rows]) for i in range(len(table.field_names))]

# 设置每列的最小宽度
table._min_width = max_widths

# 设置表格样式
table.align = "l"  # 左对齐
table.border = True  # 显示边框
table.header_style = "upper"  # 表头字母大写

# 打印表格
print(table)

运行以上代码,输出结果如下:

+----+----+------+
| 姓名 | 年龄 | 职业 |
+----+----+------+-
| 张三 | 25 | 工程师|
| 李四 | 30 | 教师  |
| 王五 | 35 | 医生 |
+----+----+------+

通过调用table._min_width方法来设置每列的最小宽度,使得表格能够根据数据的长度自适应调整列宽。