产业气象站:5个案例让Python输出漂亮的表格!


产业气象站:5个案例让Python输出漂亮的表格!
文章图片
产业气象站:5个案例让Python输出漂亮的表格!
文章图片
最近在用python写一个小工具 , 这个工具主要就是用来管理各种资源的信息 , 比如阿里云的ECS等信息 , 因为我工作的电脑使用的是LINUX , 所以就想着用Python写一个命令行的管理工具 , 基本的功能就是同步阿里云的资源的信息到数据库 , 然后可以使用命令行查询 。
因为信息是展现在命令行中的 , 众所周知 , 命令行展现复杂的文本看起来着实累人 , 于是就想着能像表格那样展示 , 那看起来就舒服多了 。
prettytable库就是这么一个工具 , prettytable可以打印出美观的表格 , 并且对中文支持相当好(如果有试图自己实现打印表格 , 你就应该知道处理中文是多么的麻烦)
说明:本文使用Markdown语法编写 , 为了展示方便 , 以及复制方便 , 所以本文中没有使用截图 , 因为格式控制的问题 , 文章中的运行结果会出现一些分割线的偏移 , 在终端中呈现并此问题 , 请各位手动去操作验证 。安装
prettytable并非python的内置库 , 通过pipinstallprettytable即可安装 。
一个小示例
我们先来看一个示例:
#!/usr/bin/python#**coding:utf-8**importsysfromprettytableimportPrettyTablereload(sys)sys.setdefaultencoding("utf8")table=PrettyTable(["编号","云编号","名称","IP地址"])table.add_row(["1","server01","服务器01","172.16.0.1"])table.add_row(["2","server02","服务器02","172.16.0.2"])table.add_row(["3","server03","服务器03","172.16.0.3"])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(["7","server07","服务器07","172.16.0.7"])table.add_row(["8","server08","服务器08","172.16.0.8"])table.add_row(["9","server09","服务器09","172.16.0.9"])print(table)
以上示例运行结果如下:
linuxops@deepin:~$pythonp.py+------+----------+----------+------------+|编号|云编号|名称|IP地址|+------+----------+----------+------------+|1|server01|服务器01|172.16.0.1||2|server02|服务器02|172.16.0.2||3|server03|服务器03|172.16.0.3||4|server04|服务器04|172.16.0.4||5|server05|服务器05|172.16.0.5||6|server06|服务器06|172.16.0.6||7|server07|服务器07|172.16.0.7||8|server08|服务器08|172.16.0.8||9|server09|服务器09|172.16.0.9|+------+----------+----------+------------+
在以上的示例中 , 我们通过form导入了表格库 。 table实例化了一个表格库 , 并且添加了["编号","云编号","名称","IP地址"]为表头 , 如果没有添加表头 , 那么会以默认的Field+编号显示 , 例如:
+---------+----------+----------+------------+|Field1|Field2|Field3|Field4|+---------+----------+----------+------------+
所以为更直观看出每一列的意义 , 还是要添加表头的 。
添加数据
prettytable提供了多种的添加数据的方式 , 最常用的应该就是按行按列添加数据了 。
A、按行添加数据table.add_row
在上面简单的示例中 , 我们就是按行添加数据的 。
添加的数据必须要是列表的形式 , 而且数据的列表长度要和表头的长度一样 。 在实际的使用中 , 我们应该要关注到添加的数据是否和表头对应 , 这一点很重要 。
B、按列添加数据table.add_column()
看下面的示例:
#!/usr/bin/python#**coding:utf-8**importsysfromprettytableimportPrettyTablereload(sys)sys.setdefaultencoding("utf8")table=PrettyTable()table.add_column("项目",["编号","云编号","名称","IP地址"])table.add_column("值",["1","server01","服务器01","172.16.0.1"])print(table)