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 |
+--------------+------+

  

python模块——PrettyTable的更多相关文章

  1. Python模块——PrettyTable 模块

    简介 PrettyTable 是python中的一个第三方库,可用来生成美观的ASCII格式的表格,十分实用. 安装 pip install prettytable 示例 从已有文件创建 CSV fr ...

  2. Python模块之"prettytable"

    Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...

  3. [转]Python 模块收集

    Python 模块收集 转自:http://kuanghy.github.io/2017/04/04/python-modules Python | Apr 4, 2017 | python 工具 a ...

  4. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  5. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  6. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  7. windows下安装python模块

    如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...

  8. 安装第三方Python模块,增加InfoPi的健壮性

    这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet    自动检测文本编码 2.lxml    用于解析 ...

  9. Python基础篇【第5篇】: Python模块基础(一)

    模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...

随机推荐

  1. Javascript定义变量

    在JavaScript中通过var来定义变量,不管是数字还是字符串,都可以通过这种方式来定义:我们既可以在声明变量的同时给变量赋值,也可以先声明变量,再给变量赋值. <script> va ...

  2. J - Long Long Message (最长公共子串)

    题目链接:https://cn.vjudge.net/contest/283743#problem/J 题目大意:给你两个字符串,问你两个字符串的最长的公共子串. 具体思路:把两个字符串合在一起,然后 ...

  3. 2018-2019-2 网络对抗技术 20165320 Exp4 恶意代码分析

    2018-2019-2 网络对抗技术 20165320 Exp4 恶意代码分析 一.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行 分析一个恶意软件,就分析Exp2或Exp3中生成后门软 ...

  4. Java读取Excel文件转换成JSON并转成List——(七)

    Jar包

  5. Jetson tx1 安装ROS

    注意,是 Jetson TX1 系统版本: R24.2 参考链接: https://www.youtube.com/watch?v=-So2P0kRYsk

  6. 【python图像处理】图像的缩放、旋转与翻转

    [python图像处理]图像的缩放.旋转与翻转 图像的几何变换,如缩放.旋转和翻转等,在图像处理中扮演着重要的角色,python中的Image类分别提供了这些操作的接口函数,下面进行逐一介绍. 1.图 ...

  7. AF_INET域与AF_UNIX域socket通信原理对比【转】

    转自:https://www.cnblogs.com/lfxiao/p/9672797.html 1.  AF_INET域socket通信过程 典型的TCP/IP四层模型的通信过程. 发送方.接收方依 ...

  8. 004_Nginx 499错误的原因及解决方法

    一. 今天进行系统维护,发现了大量的499错误, 499错误 ngx_string(ngx_http_error_495_page), /* 495, https certificate error ...

  9. CentOS 6.5环境使用ansible剧本自动化部署Corosync + pacemaker环境及corosync常用配置详解

    环境说明: 192.168.8.39 node2.chinasoft.com 192.168.8.42 node4.chinasoft.com 192.168.8.40 ansible管理服务器 19 ...

  10. centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享

    FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立 ...