Python|专业输出文本化表格的Python库,太漂亮了!


Python|专业输出文本化表格的Python库,太漂亮了!
文章图片
Python|专业输出文本化表格的Python库,太漂亮了!
文章图片
Python|专业输出文本化表格的Python库,太漂亮了!
文章图片
Python|专业输出文本化表格的Python库,太漂亮了!
文章图片
【Python|专业输出文本化表格的Python库,太漂亮了!】
Python|专业输出文本化表格的Python库,太漂亮了!
文章图片
Python|专业输出文本化表格的Python库,太漂亮了!
文章图片
Python|专业输出文本化表格的Python库,太漂亮了!
文章图片
Python|专业输出文本化表格的Python库,太漂亮了!

1. 前言最近在用 Python 写一个命令行的管理工具 , 这个工具主要就是用来管理各种资源的信息 , 比如阿里云的 ECS 等信息 , 基本的功能就是同步阿里云的资源的信息到数据库 , 然后可以使用命令行查询 。
因为信息是展现在命令行中的 , 众所周知 , 命令行展现复杂的文本看起来着实累人 , 于是就想着能像表格那样展示 , 那看起来就舒服多了 。
prettytable库就是这么一个工具 , prettytable 可以打印出美观的表格 , 并且对中文支持相当好(如果有试图自己实现打印表格 , 你就应该知道处理中文是多么的麻烦)
2. 安装prettytable 并非 python 的内置库 , 通过pip install prettytable即可安装 。
3. 示例我们先来看一个示例:

以上示例运行结果如下:

在以上的示例中 , 我们通过form导入了表格库 。 table实例化了一个表格库 , 并且添加了['编号''云编号''名称''IP地址'
为表头 , 如果没有添加表头 , 那么会以默认的Field+编号显示 , 例如:


所以为更直观看出每一列的意义 , 还是要添加表头的 。
4. 添加数据prettytable提供了多种的添加数据的方式 , 最常用的应该就是按行按列添加数据了 。
按行添加数据 table.add_row在上面简单的示例中 , 我们就是按行添加数据的 。
添加的数据必须要是列表的形式 , 而且数据的列表长度要和表头的长度一样 。 在实际的使用中 , 我们应该要关注到添加的数据是否和表头对应 , 这一点很重要 。
按列添加数据 table.add_column()
运行结果如下:


以上示例中 , 我们通过add_column来按列添加数据 , 按列添加数据不需要在实例化表格的时候制定表头 , 它的表头是在添加列的时候指定的 。
table.add_column('项目' ['编号''云编号''名称''IP地址'
)
这一行代码为例 , 项目指定了这个列的表头名为\"项目\" , ['编号''云编号''名称''IP地址'
为列的值 , 同样为列表 。
从csv文件添加数据PrettyTable不仅提供了手动按行按列添加数据 , 也支持直接从csv文件中读取数据 。


如果要读取cvs文件数据 , 必须要先导入from_csv , 否则无法运行 。 上面的示例运行结果如下:
PS:csv 文件不能通过 xls 直接重命名得到 , 会报错 。 如果是 xls 文件 , 请用另存为 csv 获得 csv 文件
从sql查询值添加从数据库查询出来的数据可以直接导入到表格打印 , 下面的例子使用了sqlite3如果使用的是mysql也是一样的 , 只要能查询到数据就能导入到表格中 。


运行结果如下:


从HTML导入数据支持从html的表格中导入 , 请看下面这个例子:


运行结果如下:


如上示例中 , 我们可以导入html的表格 , 但是不一样的地方是print语句 , 使用html表格导入数据的时候print的必须是列表中的第一个元素 , 否则有可能会报[<prettytable.PrettyTable object at 0x7fa87feba590>
这样的错误 。
这是因为