日期:2025/04/02 13:27来源:未知 人气:53
上一篇内容我们详细了解了PrettyTable库的基本用法(详见带你设计一个超实用的ASCII格式表格,Python的PrettyTable库详解)。
前情回顾
今天和大家一起来了解下PrettyTable的其他相关内容(表格对齐方式、样式设置、多种显示方式)。
开始吧!
首先,我们来详细了解下表格内容对齐方式。
01字符表对齐方式
从前面的几个例子我们知道,表格内容默认是居中排列的。
如何排队
可以通过align属性设置表格内容的对齐方式,下面举例来直观看一下。
【第一步】创建一个表格,并在里面添加表头和相应的数据
from prettytable import PrettyTable
pt = PrettyTable()
pt.field_names = ['工号', '姓名', '职位', '工资', '加班费', '迟到扣款', '应发工资']
pt.add_row(['001','孙悟空','部门经理','12000','5000','1000','16000'])
pt.add_row(['002', '武松', '高级技师', '11000', '3000', '500', '13500'])
pt.add_row(['003', '唐僧', 'CTO', '22000', '5000', '500', '26500'])
pt.add_row(['004', '宋江', '部门头目', '12000', '5000', '500', '16500'])
print(pt)
代码及运行效果如下:
运行效果
【第二步】设置单行对齐方式
对齐方式可选项:l靠左对齐,c居中对齐,r靠右对齐。
如何让它们对齐
我们使用将工号栏靠左对齐,工资栏靠右对齐设置,代码如下:
pt.align['工号'] = 'l'
pt.align['工资'] = 'r'
pt.align['加班费'] = 'r'
pt.align['迟到扣款'] = 'r'
pt.align['应发工资'] = 'r'
效果如下所示
对齐设置后效果
【第三步】一次设置所有列对齐方式
某一天,我发现表格居右对齐好看。调整如下。
pt.align = 'r'
看下效果
一次设置全部列对齐方式
好了,列的对齐方式我们已经掌握了。下面我们进入正题。
02字符表样式设置
PrettyTable有许多样式选项,可以控制表格显示方式的各个方面。可以自由地将这些选项中的每一个单独设置为您喜欢的任何内容。set_style()方法会自动为您执行此操作。
设定表格样式也很有意思
set_style()方法有几种默认样式:
DEFAULT、MSWORD_FRIENDLY、PLAIN_COLUMNS、RANDOM
大家比对一下,用法及效果如下图(使用前需导入哦,如果你不知道怎么导入,写上from prettytable import 即可,这里用上面几个样式常量代替):
各种样式比对(感觉还是默认好看)
set_style()方法可选项如下:
border:一个布尔选项(必须是True或False),控制是否在表格周围绘制边框。header:一个布尔选项(必须是True或False),控制表的第一行是否是显示所有字段名称的标题。hrules:控制行后水平线的打印,允许值:FRAME, HEADER, ALL, NONE。请注意,这些是prettytable模块内部定义的变量, 因此请确保导入或使用prettytable.FRAME等。vrules:控制列之间垂直规则的打印。允许值: FRAME、ALL、NONE。int_format:控制整数数据打印方式的字符串。这就像:print("%
pt.set_style(vertical_char = '+')
怎么样?简单吧!
so easy!
另外,需要说明的是,如果想一直使用这些样式,直接在定义PrettyTable时就将样式属性设定好,如果只是临时使用,则在PrettyTable实例的get_string()方法中设定相应的参数即可。
演示代码如下(对比两种设置):
两种设置方式对比
你选择哪种?视具体情况而定。
下面,通过一个案例来展示下其用法。我们改变默认样式中的垂直、水平及连接字符看下效果。
pt.vertical_char = '$'
pt.horizontal_char = '~'
pt.junction_char = '*'
改变样式
其他内容大家自己探索吧!
03表格的多种显示方式
此外,还可以将prettytable实例以html表格代码格式打印出来。
print(pt.get_html_string())
格式化为html
同样,如果你想在html表格中应用CSS样式或者标签其他属性,使用代码可以添加,方法如下:
print(pt.get_html_string(attributes={"name":"my_table","class":"blue_table", }))
当然,命令行下这些CSS属性是没法展示的!
好了,今天的内容就到这里了,我们对prettytable这个库应该不会陌生了吧,看了这么多内容,如何好好消化?离不开我们的项目,下一篇内容我们利用一个小小的案例来强化对prettytable的认识。至于什么项目,暂且保密^-^
值得期待!
喜欢Python编程的小伙伴关注我,后续会有更多有意思的实战内容哦!