文章插图
来源 | Python数据之道
文章插图
前言最近在用python写一个小工具 , 这个工具主要就是用来管理各种资源的信息 , 比如阿里云的ECS等信息 , 因为我工作的电脑使用的是linux , 所以就想着用 Python写一个命令行的管理工具 , 基本的功能就是同步阿里云的资源的信息到数据库 , 然后可以使用命令行查询 。
因为信息是展现在命令行中的 , 众所周知 , 命令行展现复杂的文本看起来着实累人 , 于是就想着能像表格那样展示 , 那看起来就舒服多了 。
prettytable库就是这么一个工具 , prettytable可以打印出美观的表格 , 并且对中文支持相当好(如果有试图自己实现打印表格 , 你就应该知道处理中文是多么的麻烦)
说明:本文使用Markdown语法编写 , 为了展示方便 , 以及复制方便 , 所以本文中没有使用截图 , 因为格式控制的问题 , 文章中的运行结果会出现一些分割线的偏移 , 在终端中呈现并此问题 , 请各位手动去操作验证 。
文章插图
安装prettytable并非python的内置库 , 通过
pip install prettytable
即可安装 。文章插图
一个小示例我们先来看一个示例:
#!/usr/bin/python
#**coding:utf-8**
import sys
from prettytable import PrettyTable
reload(sys)
sys.setdefaultencoding('utf8')
【5个案例让Python输出漂亮的表格】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:~$ python p.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+编号显示 , 例如:+---------+----------+----------+------------+
| Field 1 | Field 2 | Field 3 | Field 4 |
+---------+----------+----------+------------+
所以为更直观看出每一列的意义 , 还是要添加表头的 。
文章插图
添加数据prettytable提供了多种的添加数据的方式 , 最常用的应该就是按行按列添加数据了 。
A、按行添加数据 table.add_row在上面简单的示例中 , 我们就是按行添加数据的 。
添加的数据必须要是列表的形式 , 而且数据的列表长度要和表头的长度一样 。在实际的使用中 , 我们应该要关注到添加的数据是否和表头对应 , 这一点很重要 。
推荐阅读
- 让人又爱又恨的Lombok,到底该不该用
- 淘宝网店转让怎么转 淘宝店铺能不能转让
- 常吃7种养颜素食 让你轻松拥有美丽容貌
- 素食者十字口诀 让你不再担心营养不够
- 4月1日即将实施驾驶证新规,5个新变化,一次性告诉你
- 打动女人的心六个绝招,让她离不开
- 怎么学瑜伽呢?
- 淘宝转让需要什么手续 淘宝店铺可以转让吗?
- 淘宝8年案例解读大厂如何开发和部署前端代码
- 司机高速上睡了半小时,车内“无人驾驶”48公里,让人无法相信