python模块PrettyTable
python模块——PrettyTable
一. 简介
Python通过prettytable模块将输出内容如表格方式整齐输出,可用来生成美观的ASCII格式的表格,十分实用。
python本身并不内置,需要独立安装该第三方库。
二、使用
简单使用
1 2 3 4 5 6 7 8 | import prettytable as pt ## 按行添加数据 tb = pt.PrettyTable() tb.field_names = [ "名字" , "投票人数" , "类型" , "产地" , "上映时间" , "时长" , "年代" , "评分" ] tb.add_row([ "美丽人生" , 42995 , "剧情/喜剧/爱情" , "意大利" , "1997-12-20" , 116 , 1997 , 9.5 ]) tb.add_row([ "肖申克的救赎" , 692795 , "剧情/犯罪" , "美国" , "1994-09-10" , 142 , 1994 , 9.6 ]) print (tb) |
1 2 3 4 5 6 | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + | 美丽人生 | 42995 | 剧情 / 喜剧 / 爱情 | 意大利 | 1997 - 12 - 20 | 116 | 1997 | 9.5 | | 肖申克的救赎 | 692795 | 剧情 / 犯罪 | 美国 | 1994 - 09 - 10 | 142 | 1994 | 9.6 | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + |
1 2 3 4 5 6 7 8 9 | import prettytable as pt ## 按列添加数据 tb = pt.PrettyTable() tb.field_names = [ "名字" , "投票人数" , "类型" , "产地" , "上映时间" , "时长" , "年代" , "评分" ] tb.add_row([ "美丽人生" , 42995 , "剧情/喜剧/爱情" , "意大利" , "1997-12-20" , 116 , 1997 , 9.5 ]) tb.add_row([ "肖申克的救赎" , 692795 , "剧情/犯罪" , "美国" , "1994-09-10" , 142 , 1994 , 9.6 ]) tb.add_column( 'index' ,[ 1 , 2 ]) print (tb) |
1 2 3 4 5 6 | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | index | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + | 美丽人生 | 42995 | 剧情 / 喜剧 / 爱情 | 意大利 | 1997 - 12 - 20 | 116 | 1997 | 9.5 | 1 | | 肖申克的救赎 | 692795 | 剧情 / 犯罪 | 美国 | 1994 - 09 - 10 | 142 | 1994 | 9.6 | 2 | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + |
切换输出风格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | import prettytable as pt ## 按列添加数据 tb = pt.PrettyTable() tb.field_names = [ "名字" , "投票人数" , "类型" , "产地" , "上映时间" , "时长" , "年代" , "评分" ] tb.add_row([ "美丽人生" , 42995 , "剧情/喜剧/爱情" , "意大利" , "1997-12-20" , 116 , 1997 , 9.5 ]) tb.add_row([ "肖申克的救赎" , 692795 , "剧情/犯罪" , "美国" , "1994-09-10" , 142 , 1994 , 9.6 ]) tb.add_column( 'index' ,[ 1 , 2 ]) ## 使用不同的输出风格 tb.set_style(pt.MSWORD_FRIENDLY) print ( '--- style:MSWORD_FRIENDLY -----' ) print (tb) tb.set_style(pt.PLAIN_COLUMNS) print ( '--- style:PLAIN_COLUMNS -----' ) print (tb) ## 随机风格,每次不同 tb.set_style(pt.RANDOM) print ( '--- style:MSWORD_FRIENDLY -----' ) print (tb) tb.set_style(pt.DEFAULT) print ( '--- style:DEFAULT -----' ) print (tb) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | - - - style:MSWORD_FRIENDLY - - - - - | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | index | | 美丽人生 | 42995 | 剧情 / 喜剧 / 爱情 | 意大利 | 1997 - 12 - 20 | 116 | 1997 | 9.5 | 1 | | 肖申克的救赎 | 692795 | 剧情 / 犯罪 | 美国 | 1994 - 09 - 10 | 142 | 1994 | 9.6 | 2 | - - - style:PLAIN_COLUMNS - - - - - 名字 投票人数 类型 产地 上映时间 时长 年代 评分 index 美丽人生 42995 剧情 / 喜剧 / 爱情 意大利 1997 - 12 - 20 116 1997 9.5 1 肖申克的救赎 692795 剧情 / 犯罪 美国 1994 - 09 - 10 142 1994 9.6 2 - - - style:MSWORD_FRIENDLY - - - - - {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ 美丽人生 42995 剧情 / 喜剧 / 爱情 意大利 1997 - 12 - 20 116 1997 9.5 1 {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ 肖申克的救赎 692795 剧情 / 犯罪 美国 1994 - 09 - 10 142 1994 9.6 2 {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ - - - style:DEFAULT - - - - - + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | index | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + | 美丽人生 | 42995 | 剧情 / 喜剧 / 爱情 | 意大利 | 1997 - 12 - 20 | 116 | 1997 | 9.5 | 1 | | 肖申克的救赎 | 692795 | 剧情 / 犯罪 | 美国 | 1994 - 09 - 10 | 142 | 1994 | 9.6 | 2 | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + |
自定义输出格式
import prettytable as pt
## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
## 自定义表格输出样式
### 设定对齐方式
# ["l","c","r"] l:左对齐,c:中间对齐,r:右对齐
tb.align='c'
### 设定数字输出格式
tb.float_format = '1'
### 设定边框连接符为'*"
tb.junction_char = "*"
### 设定排序方式
tb.sortby = "投票人数"
### 设定左侧不填充空白字符
tb.left_padding_width = 0
### 填充宽度
tb.padding_width= 5
print(tb)
1 2 3 4 5 6 | * - - - - - - - - - - - - - - - - - * - - - - - - - - - - - - - * - - - - - - - - - - - - - - - - - - - * - - - - - - - - - - - * - - - - - - - - - - - - - - - * - - - - - - - - - * - - - - - - - - - * - - - - - - - - - - - - - * - - - - - - - - - - * | 名字 |投票人数 | 类型 | 产地 | 上映时间 |时长 |年代 | 评分 |index | * - - - - - - - - - - - - - - - - - * - - - - - - - - - - - - - * - - - - - - - - - - - - - - - - - - - * - - - - - - - - - - - * - - - - - - - - - - - - - - - * - - - - - - - - - * - - - - - - - - - * - - - - - - - - - - - - - * - - - - - - - - - - * | 美丽人生 | 42995 |剧情 / 喜剧 / 爱情 |意大利 | 1997 - 12 - 20 | 116 | 1997 | 9.500000 | 1 | |肖申克的救赎 | 692795 | 剧情 / 犯罪 | 美国 | 1994 - 09 - 10 | 142 | 1994 | 9.600000 | 2 | * - - - - - - - - - - - - - - - - - * - - - - - - - - - - - - - * - - - - - - - - - - - - - - - - - - - * - - - - - - - - - - - * - - - - - - - - - - - - - - - * - - - - - - - - - * - - - - - - - - - * - - - - - - - - - - - - - * - - - - - - - - - - * |
获取特定内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import prettytable as pt ## 按列添加数据 tb = pt.PrettyTable() tb.field_names = [ "名字" , "投票人数" , "类型" , "产地" , "上映时间" , "时长" , "年代" , "评分" ] tb.add_row([ "美丽人生" , 42995 , "剧情/喜剧/爱情" , "意大利" , "1997-12-20" , 116 , 1997 , 9.5 ]) tb.add_row([ "肖申克的救赎" , 692795 , "剧情/犯罪" , "美国" , "1994-09-10" , 142 , 1994 , 9.6 ]) tb.add_column( 'index' ,[ 1 , 2 ]) ## 不打印,获取表格字符串 s = tb.get_string() print (s) ## 可以只获取指定列或行 ##这里只获取'名字'与'时长'这两列,从第一行到第二行 s = tb.get_string(fields = [ "名字" , '时长' ],start = 1 ,end = 2 ) print (s) |
1 2 3 4 5 6 7 8 9 10 11 | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + | 名字 | 投票人数 | 类型 | 产地 | 上映时间 | 时长 | 年代 | 评分 | index | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + | 美丽人生 | 42995 | 剧情 / 喜剧 / 爱情 | 意大利 | 1997 - 12 - 20 | 116 | 1997 | 9.5 | 1 | | 肖申克的救赎 | 692795 | 剧情 / 犯罪 | 美国 | 1994 - 09 - 10 | 142 | 1994 | 9.6 | 2 | + - - - - - - - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - - - - - - + - - - - - - - - + - - - - - - - - - - - - + - - - - - - + - - - - - - + - - - - - - + - - - - - - - + + - - - - - - - - - - - - - - + - - - - - - + | 名字 | 时长 | + - - - - - - - - - - - - - - + - - - - - - + | 肖申克的救赎 | 142 | + - - - - - - - - - - - - - - + - - - - - - + |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?