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


从sql查询值添加从数据库查询出来的数据可以直接导入到表格打印 , 下面的例子使用了sqlite3如果使用的是mysql也是一样的 , 只要能查询到数据就能导入到表格中 。



运行结果如下:



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



运行结果如下:



如上示例中 , 我们可以导入html的表格 , 但是不一样的地方是print语句 , 使用html表格导入数据的时候print的必须是列表中的第一个元素 , 否则有可能会报[<prettytable.PrettyTable object at 0x7fa87feba590>
这样的错误 。
这是因为table并不是PrettyTable对象 , 而是包含单个PrettyTable对象的列表 , 它通过解析html而来 , 所以无法直接打印table , 而需要打印table[0

5. 表格输出格式正如支持多种输入一样 , 表格的输出也支持多种格式 , 我们在上面中的例子中已经使用了print的方式输出 , 这是一种常用的输出方式 。
print直接通过print打印出表格 。 这种方式打印出的表格会带边框 。
输出HTML格式的表格print(table.get_html_string())可以打印出html标签的表格 。
在上面的例子中 , 使用print(table.get_html_string())会打印出如下结果:



6. 选择性输出prettytable在创建表格之后 , 你依然可以有选择的输出某些特定的行.
输出指定的列print table.get_string(fields=[\"编号\" \"IP地址\"
)
可以输出指定的列
输出前两行通过print(table.get_string(start = 0 end = 2))的可以打印出指定的列 , 当然startend参数让我可以自由控制显示区间 。 当然区间中包含start不包含end , 是不是很熟悉这样的用法?
将表格切片从上面的输出区间 , 我们做一个大胆的假设 , 既然区间包含start不包含end这种规则和切片的一样 , 我们可以不可通过切片来生成一个新的表格然后将其打印 。
事实上是可以的 。



如上代码段中 , 我们就可以打印出0到1行共2行的表格 , python的切片功能异常强大 , 配合切片我们可以自由的输入任意的行 。
输出排序有时候我们需要对输出的表格进行排序 , 使用print table.get_string(sortby=\"编号\" reversesort=True)就可以对表格进行排序 , 其中reversesort指定了是否倒序排序默认为False , 即默认正序列排序 。
sortby指定了排序的字段 。
7. 表格的样式内置样式通过set_style()可以设置表格样式 , prettytable内置了多种的样式个人觉得MSWORD_FRIENDLYPLAIN_COLUMNSDEFAULT这三种样式看起来比较清爽 , 在终端下显示表格本来看起就很累 , 再加上一下花里胡哨的东西看起来就更累 。
除了以上推荐的三种样式以外 , 还有一种样式不得不说 , 那就是RANDOM , 这是一种随机的样式 , 每一次打印都会在内置的样式中随机选择一个 , 比较好玩 。
具体内置了几种样式 , 请各位参考官网完整自己尝试输出看看 。



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