Python PrettyTable 模块

  • Python PrettyTable 模块

    • 简介
    • 安装
    • 示例
    • 使用
      • 创建表

        • 直接创建
        • 从已有文件创建
          • CSV
          • HTML
          • SQL
      • 添加元素
        • 按行添加
        • 按列添加
      • 输出格式
        • ASCII码表

          • 直接输出
          • 无表格框输出
        • HTML表
        • 选择子表
        • 表排序
      • 控制表样式
        • 自带样式
        • 手动控制样式
          • 可调整选项
          • 用法
          • 调整对齐方式的几种方法
    • 参考资料

简介

Python通过PrettyTable模块可以将输出内容如表格方式整齐地输出。

安装

pip install prettytable

示例

from prettytable import PrettyTable
table = PrettyTable(["animal", "ferocity"])
table.add_row(["wolverine", 100])
table.add_row(["grizzly", 87])
table.add_row(["Rabbit of Caerbannog", 110])
table.add_row(["cat", -1])
table.add_row(["platypus", 23])
table.add_row(["dolphin", 63])
table.add_row(["albatross", 44])
table.sort_key("ferocity")
table.reversesort = True
print(table)'''效果图
+----------------------+----------+
|        animal        | ferocity |
+----------------------+----------+
| Rabbit of Caerbannog |   110    |
|      wolverine       |   100    |
|       grizzly        |    87    |
|       dolphin        |    63    |
|      albatross       |    44    |
|       platypus       |    23    |
|         cat          |    -1    |
+----------------------+----------+
'''

使用

创建表

直接创建

pt = PrettyTable()

从已有文件创建

CSV
from prettytable import from_csv
fp = open("mytable.csv", "r")
pt = from_csv(fp)
fp.close()
HTML
from prettytable import from_html
pts = from_html(html_string)
SQL
from prettytable import from_db_cursor
db_cur.execute("SELECT * FROM mytable")
pt = from_db_cursor(db_cur)

添加元素

按行添加

pt.add_row()

按列添加

pt.add_column()

输出格式

ASCII码表

直接输出
print(pt)
无表格框输出
print(pt.get_string())

HTML表

print(pt.get_html_string())

选择子表

print(pt.get_string(fields = ["City name", "Population"]))
#输出前4列
print(pt.get_string(start = 0, end = 3))
new_table = old_table[0:3]
print(new_table)

表排序

print x.get_string(sortby="Annual Rainfall", reversesort=True)

控制表样式

自带样式

#参数还可以选择“DEFAULT”、“PLAIN_COLUMNS”
from prettytable import MSWORD_FRIENDLY
x.set_style(MSWORD_FRIENDLY)
print(x)

手动控制样式

可调整选项

摘自prettytable文档

  • border - 布尔类型参数(必须是True或False)。控制表格边框是否显示。
  • header - 布尔类型参数(必须是True或False)。控制表格第一行是否作为表头显示。
  • header-style - 控制表头信息的大小写。允许的参数值:“cap”(每个单词首字母大写),“title”(除了介词助词首字母大写),“lower”(全部小写)或者None(不改变原内容格式)。默认参数为None。
  • hrules - 设置表格内部水平边线。允许的参数值:FRAME,ALL,NONE。注意这些是在prettytable模块内部定义的变量,在使用之前导入或用类似prettytable.FRAME的方法调用。
  • vrules - 设置表格内部竖直边线。允许的参数值:FRAME,ALL,NONE。
  • align - 水平对齐方式(None,“l”(左对齐),“c”(居中),“r”右对齐)
  • valign - 垂直对齐方式(None,“t”(顶部对齐),“m”(居中),“b”底部对齐)
  • int_format - 控制整型数据的格式。
  • float_format - 控制浮点型数据的格式。
  • padding_width - 列数据左右的空格数量。(当左右padding未设置时生效)
  • left_padding_width - 列数据左侧的空格数量。
  • right_padding_width - 列数据右侧的空格数量。
  • vertical_char - 绘制竖直边线的字符,默认为“|”
  • horizontal_char - 绘制水平边线的字符,默认为“-”
  • junction_char - 绘制水平竖直交汇点的字符,默认为“+”

  • border - A boolean option (must be True or False). Controls whether or not a border is drawn around the table.
  • header - A boolean option (must be True or False). Controls whether or not the first row of the table is a header showing the names of all the fields.
  • header_style - Controls capitalisation of field names in the header. Allowed values: “cap” (capitalise first letter of each word), “title” (title case), “upper” (all upper-case), “lower” (all lower-case) or None (don’t change from original field name setting). Default is None.
  • hrules - Controls printing of horizontal rules after rows. Allowed values: FRAME, ALL, NONE - note that these are variables defined inside the prettytable module so make sure you import them or use prettytable.FRAME etc.
  • vrules - Controls printing of vertical rules between columns. Allowed values: FRAME, ALL, NONE
  • align - Horizontal alignment (None, “l” (left), “c” (centre), “r” (right))
  • valign - Vertical alignment (None, “t” (top), “m” (middle) or “b” (bottom))
  • int_format - Controls formatting of integer data. This should be a string which can be placed between “%” and “d” in something like print “%d” % 42.
  • float_format - Controls formatting of floating point data. This should be a string which can be placed between “%” and “f” in something like print “%f” % 4.2.
  • padding_width - Number of spaces on either side of column data (only used if left and right paddings are None).
  • left_padding_width - Number of spaces on left hand side of column data.
  • right_padding_width - Number of spaces on right hand side of column data.
  • vertical_char - Single character string used to draw vertical lines. Default is |.
  • horizontal_char - Single character string used to draw horizontal lines. Default is -.
  • junction_char - Single character string used to draw line junctions. Default is +.
用法
x = PrettyTable()
x.border = False
x.header = False
x.padding_width = 5
x = PrettyTable(border=False, header=False, padding_width=5)

以上两种设置方式等效

调整对齐方式的几种方法
print(x.get_string(align="l"))
x.align["City name"] = "l"
x.align["Population"] = "c"
x.align["Area"] = "r"
x.align = "l'

参考资料

  • prettytable 文档
    使用方法从文档摘取过来的 更多用法请直接参考文档
  • python之PrettyTable模块
  • Python prettytable.PrettyTable Examples
    更多实例提供参考

Python PrettyTable 模块相关推荐

  1. Python PrettyTable 模块(美化库)

    Python PrettyTable 模块 简介 安装 示例 使用 创建表 直接创建 从已有文件创建 CSV HTML SQL 添加元素 按行添加 按列添加 输出格式 ASCII码表 直接输出 无表格 ...

  2. python prettytable格式设置_Python prettytable的使用方法

    原博文 2015-10-22 19:09 − ###Python prettytable的使用方法 prettytable可以整齐地输出一个表格信息: +-----------+------+---- ...

  3. Python爬虫——使用正则表达式爬取西安7天的天气预报,并使用prettytable模块输出

    使用正则表达式爬取西安7天的天气预报 这个爬虫的案例就是对正则表达式的运用,通过这个案例,我们可以对正则表达式有更加深入的理解. 1. 信息来源: 天气网.  链接为:https://www.tian ...

  4. Python常用模块——目录

    Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...

  5. python email模块

    python email模块 官方文档 email模块 电子邮件包是一个用于管理电子邮件消息的库.它的特殊设计不用于向SMTP (RFC 2821).NNTP或其他服务器发送任何电子邮件消息;这些是模 ...

  6. Python Re 模块超全解读!详细

    内行必看!Python Re 模块超全解读! 2019.08.08 18:59:45字数 953阅读 121 re模块下的函数 compile(pattern):创建模式对象 > import ...

  7. python argparse模块_Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python ...

  8. 关于使用python logging模块的几点总结

    关于使用python logging模块的几点总结 使用python的标准日志模块logging可以非常方便地记录日志.Python日志系统非常丰富.添加结构化或非结构化日志输出到python代码,写 ...

  9. python高级-模块(14)

    一.python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include <math.h>引入math.h这个头文件,否则是无法正常进行调用的. ...

最新文章

  1. 尝鲜RHEV 3.0——概念篇(附RHEV3.0下载)
  2. Java黑皮书课后题第3章:*3.30(当前时间)修改编程练习题2.8,以12小时时钟制显示小时数
  3. Java | Python 流程控制对比
  4. Spring Security学习(二)
  5. 入门训练 Fibonacci数列 c语言
  6. 移动端分享到微信和QQ
  7. screen乱码问题
  8. 由淘宝,京东,凡客站点的多条件分页查询细节想到的
  9. pythonsocket中tcp通信接收不到数据_简单说说Python Socket编程步骤?
  10. cdr X6 64位32位缩略图补丁包
  11. 《FLUENT 14流场分析自学手册》——第1章 流体力学基础 1.1 流体力学基本概念
  12. android 打开pdf文件
  13. 使用Excel制作证件照之替换背景色
  14. DCFNET:用于视觉跟踪的判别相关滤波器网络
  15. 爬取网易严选某种衣服商品数据,实现可视化,结论有点吓人
  16. 魔改一个自以为不太好的简历
  17. 志强CPU E5 E7参数,CPU内核参数对比图
  18. 深度学习与“免费”GPU
  19. PHP - 关于empty()
  20. 程序员修炼之道-从小工到专家 读后感

热门文章

  1. Spring MVC 数据类型转换器
  2. MATLAB实现红眼消除(数字图像处理)
  3. GitHub 入门教程
  4. IGMP协议(IGMPv1、IGMPv2、IGMPv3)
  5. .NET Framework各个版本(3.5 - 4.0)
  6. 360 ie8兼容模式 网页兼容问题
  7. 一文读懂 Kafka 事务机制
  8. 怎么用计算机的计算器转换进位制,计算机进制换算(进制转换计算器)
  9. AndroidStudio 模拟器一直黑屏或者处于离线状态
  10. 支付宝《神奇海洋》素材