更多课程 选择中心


Python培训

400-996-5531

Python怎么做出漂亮的表格?


上一节内容我们教给大家如何用python做出表格,但是后来同学们反映我们做出的表格一点也不漂亮呀,问我是不是还有技巧没有教给大家,果然,大家这么聪明还真瞒不住。想要做出更漂亮的表格还要会这些,一起来看看吧!怎么用python做出漂亮的表格?

接着上一篇讲:正如支持多种输入一样,表格的输出也支持多种格式,我们在上面中的例子中已经使用了print的方式输出,这是一种常用的输出方式。

A、print

直接通过print打印出表格。这种方式打印出的表格会带边框。

B、输出HTML格式的表格

print(table.get_html_string())可以打印出html标签的表格。

在上面的例子中,使用print(table.get_html_string())会打印出如下结果:

<table>

<tr>

<th>编号</th>

<th>云编号</th>

<th>名称</th>

<th>IP地址</th>

</tr>

<tr>

<td>1</td>

<td>server01</td>

<td>服务器01</td>

<td>172.16.0.1</td>

</tr>

<tr>

<td>2</td>

<td>server02</td>

<td>服务器02</td>

<td>172.16.0.2</td>

</tr>

</table>

选择性输出

prettytable在创建表格之后,你依然可以有选择的输出某些特定的行.

A、输出指定的列

print table.get_string(fields=["编号", "IP地址"])可以输出指定的列

B、输出前两行

通过print(table.get_string(start = 0, end = 2))的可以打印出指定的列,当然start和end参数让我可以自由控制显示区间。当然区间中包含start不包含end,是不是很熟悉这样的用法?

根据输出指定行列的功能,我们可以同时指定行和列来输出,这里就不说明了。

C、将表格切片

从上面的输出区间,我们做一个大胆的假设,既然区间包含start不包含end这种规则和切片的一样,我们可以不可通过切片来生成一个新的表格然后将其打印。

事实上是可以的。

new_table = table[0:2]

print(new_table)

如上代码段中,我们就可以打印出0到1行共2行的表格,python的切片功能异常强大,配合切片我们可以自由的输入任意的行。

D、输出排序

有时候我们需要对输出的表格进行排序,使用print table.get_string(sortby="编号", reversesort=True)就可以对表格进行排序,其中reversesort指定了是否倒序排序,默认为False,即默认正序列排序。

sortby指定了排序的字段。

表格的样式

A、内置样式

通过set_style()可以设置表格样式,prettytable内置了多种的样式个人觉得MSWORD_FRIENDLY,PLAIN_COLUMNS,DEFAULT 这三种样式看起来比较清爽,在终端下显示表格本来看起就很累,再加上一下花里胡哨的东西看起来就更累。

除了以上推荐的三种样式以外,还有一种样式不得不说,那就是RANDOM,这是一种随机的样式,每一次打印都会在内置的样式中随机选择一个,比较好玩。

具体内置了几种样式,请各位参考官网完整自己尝试输出看看。

#!/usr/bin/python

#**coding:utf-8**

import sys

from prettytable import PrettyTable

from prettytable import MSWORD_FRIENDLY

from prettytable import PLAIN_COLUMNS

from prettytable import RANDOM

from prettytable import DEFAULT

reload(sys)

sys.setdefaultencoding('utf8')

table = PrettyTable(['编号','云编号','名称','IP地址'])

table.add_row(['1','server01','服务器01','172.16.0.1'])

table.add_row(['3','server03','服务器03','172.16.0.3'])

table.add_row(['2','server02','服务器02','172.16.0.2'])

table.add_row(['9','server09','服务器09','172.16.0.9'])

table.add_row(['4','server04','服务器04','172.16.0.4'])

table.add_row(['5','server05','服务器05','172.16.0.5'])

table.add_row(['6','server06','服务器06','172.16.0.6'])

table.add_row(['8','server08','服务器08','172.16.0.8'])

table.add_row(['7','server07','服务器07','172.16.0.7'])

table.set_style(DEFAULT)

print(table)

B、自定义样式

除了内置的样式以外,PrettyTable也提供了用户自定义,例如对齐方式,数字输出格式,边框连接符等等

C、设置对齐方式

align提供了用户设置对齐的方式,值有l,r,c方便代表左对齐,右对齐和居中 如果不设置,默认居中对齐。

D、控制边框样式

在PrettyTable中,边框由三个部分组成,横边框,竖边框,和边框连接符(横竖交叉的链接符号)

如下示例:

#!/usr/bin/python

#**coding:utf-8**

import sys

from prettytable import PrettyTable

reload(sys)

sys.setdefaultencoding('utf8')

table = PrettyTable(['编号','云编号','名称','IP地址'])

table.add_row(['1','server01','服务器01','172.16.0.1'])

table.add_row(['3','server03','服务器03','172.16.0.3'])

table.add_row(['2','server02','服务器02','172.16.0.2'])

table.add_row(['9','server09','服务器09','172.16.0.9'])

table.add_row(['4','server04','服务器04','172.16.0.4'])

table.add_row(['5','server05','服务器05','172.16.0.5'])

table.add_row(['6','server06','服务器06','172.16.0.6'])

table.add_row(['8','server08','服务器08','172.16.0.8'])

table.add_row(['7','server07','服务器07','172.16.0.7'])

table.align[1] = 'l'

table.border = True

table.junction_char='$'

table.horizontal_char = '+'

table.vertical_char = '%'

print(table)

table.border`控制是否显示边框,默认是`True

table.junction_char控制边框连接符

table.horizontal_char控制横边框符号

table.vertical_char控制竖边框符号

上例运行如下:

$++++++$++++++++++$++++++++++$++++++++++++$

% 编号 % 云编号 % 名称 % IP地址 %

$++++++$++++++++++$++++++++++$++++++++++++$

% 1 % server01 % 服务器01 % 172.16.0.1 %

% 3 % server03 % 服务器03 % 172.16.0.3 %

% 2 % server02 % 服务器02 % 172.16.0.2 %

% 9 % server09 % 服务器09 % 172.16.0.9 %

% 4 % server04 % 服务器04 % 172.16.0.4 %

% 5 % server05 % 服务器05 % 172.16.0.5 %

% 6 % server06 % 服务器06 % 172.16.0.6 %

% 8 % server08 % 服务器08 % 172.16.0.8 %

% 7 % server07 % 服务器07 % 172.16.0.7 %

$++++++$++++++++++$++++++++++$++++++++++++$

最后,简单介绍了表格常用的一些样式设置,这样可以让表格更加美观,当然还有很多其他技巧,这些就要同学们慢慢摸索了,相信你们也会做出更加漂亮的表格。

达内每年输送10万+人才,18年来帮助80万学员高薪就业;协助16万家企业解决人才需求。拥有完善的就业保障体系,116万家招聘雇主合作企业。每天产生数千个招聘岗位,提供更多就业机会给到达内学员。找Python培训,选达内就对了!

版权声明:转载文章来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python还能做出漂亮的表格?一起来瞧瞧
下一篇:说几个Python的非常有用的技巧

如何自学Python?

说一说python中的几个基础语法

为什么Python类语法应该不同?

0基础入门Python,3 个常识点必须先了解!

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省