在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方法来设置每列的最小宽度,使得表格能够根据数据的长度自适应调整列宽。
