python模块——PrettyTable 

一. 简介

  Python通过prettytable模块将输出内容如表格方式整齐输出,可用来生成美观的ASCII格式的表格,十分实用。

  python本身并不内置,需要独立安装该第三方库。  

二、使用 

简单使用

import prettytable as pt

## 按行添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
print(tb)

+--------------+----------+----------------+--------+------------+------+------+------+
|     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 |
+--------------+----------+----------------+--------+------------+------+------+------+
|   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |
| 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |
+--------------+----------+----------------+--------+------------+------+------+------+

import prettytable as pt

## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
print(tb)

+--------------+----------+----------------+--------+------------+------+------+------+-------+
|     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 | index |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
|   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |   1   |
| 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |   2   |
+--------------+----------+----------------+--------+------------+------+------+------+-------+

切换输出风格

import prettytable as pt

## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
## 使用不同的输出风格
tb.set_style(pt.MSWORD_FRIENDLY)
print('--- style:MSWORD_FRIENDLY -----')
print(tb)

tb.set_style(pt.PLAIN_COLUMNS)
print('--- style:PLAIN_COLUMNS -----')
print(tb)

## 随机风格,每次不同
tb.set_style(pt.RANDOM)
print('--- style:MSWORD_FRIENDLY -----')
print(tb)

tb.set_style(pt.DEFAULT)
print('--- style:DEFAULT -----')
print(tb)

--- style:MSWORD_FRIENDLY -----
|     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 | index |
|   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |   1   |
| 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |   2   |
--- style:PLAIN_COLUMNS -----
    名字            投票人数             类型              产地          上映时间         时长        年代        评分        index        
  美丽人生           42995          剧情/喜剧/爱情        意大利        1997-12-20        116         1997        9.5           1          
肖申克的救赎         692795           剧情/犯罪            美国         1994-09-10        142         1994        9.6           2          
--- style:MSWORD_FRIENDLY -----
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
        美丽人生            42995           剧情/喜剧/爱情          意大利          1997-12-20          116          1997          9.5          1     
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
      肖申克的救赎          692795            剧情/犯罪              美国           1994-09-10          142          1994          9.6          2     
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
--- style:DEFAULT -----
+--------------+----------+----------------+--------+------------+------+------+------+-------+
|     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 | index |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
|   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |   1   |
| 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |   2   |
+--------------+----------+----------------+--------+------------+------+------+------+-------+

自定义输出格式

import prettytable as pt

## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
## 自定义表格输出样式
### 设定对齐方式
# ["l","c","r"]  l:左对齐,c:中间对齐,r:右对齐
tb.align='c'
### 设定数字输出格式
tb.float_format = '1'
### 设定边框连接符为'*"
tb.junction_char = "*"
### 设定排序方式
tb.sortby = "投票人数"
### 设定左侧不填充空白字符
tb.left_padding_width = 0
### 填充宽度
tb.padding_width= 5
print(tb)

*-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
|    名字         |投票人数     |     类型          | 产地      | 上映时间      |时长     |年代     |  评分       |index     |
*-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
|  美丽人生       | 42995       |剧情/喜剧/爱情     |意大利     |1997-12-20     |116      |1997     |9.500000     |  1       |
|肖申克的救赎     | 692795      |  剧情/犯罪        | 美国      |1994-09-10     |142      |1994     |9.600000     |  2       |
*-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*

获取特定内容

import prettytable as pt

## 按列添加数据
tb = pt.PrettyTable()
tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
tb.add_column('index',[1,2])
## 不打印,获取表格字符串
s = tb.get_string()
print(s)

## 可以只获取指定列或行
##这里只获取'名字'与'时长'这两列,从第一行到第二行
s = tb.get_string(fields=["名字", '时长'],start=1,end=2)
print(s)
+--------------+----------+----------------+--------+------------+------+------+------+-------+
|     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 | index |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
|   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |   1   |
| 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |   2   |
+--------------+----------+----------------+--------+------------+------+------+------+-------+
+--------------+------+
|     名字     | 时长 |
+--------------+------+
| 肖申克的救赎 | 142  |
+--------------+------+