python模块——PrettyTable
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的更多相关文章
- Python模块——PrettyTable 模块
简介 PrettyTable 是python中的一个第三方库,可用来生成美观的ASCII格式的表格,十分实用. 安装 pip install prettytable 示例 从已有文件创建 CSV fr ...
- Python模块之"prettytable"
Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...
- [转]Python 模块收集
Python 模块收集 转自:http://kuanghy.github.io/2017/04/04/python-modules Python | Apr 4, 2017 | python 工具 a ...
- 使用C/C++写Python模块
最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...
- Python模块之configpraser
Python模块之configpraser 一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...
- python 学习第五天,python模块
一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...
- windows下安装python模块
如何在windows下安装python模块 1. 官网下载安装包,比如(pip : https://pypi.python.org/pypi/pip#downloads) pip-9.0.1.tar. ...
- 安装第三方Python模块,增加InfoPi的健壮性
这3个第三方Python模块是可选的,不安装的话InfoPi也可以运行. 但是如果安装了,会增加InfoPi的健壮性. 目录 1.cchardet 自动检测文本编码 2.lxml 用于解析 ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
随机推荐
- POJ 2503 Babelfish (STL)
题目链接 Description You have just moved from Waterloo to a big city. The people here speak an incompreh ...
- D- 泛型练习 ,继承,方法
unit Unit3; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System ...
- C++11模板友元语法
第 1 类: 普通类A的 普通类B 友元(一对一友好关系): 无需前置声明class B,当class B第一次出现在friend声明中时,该名字被隐式地认为可见. class A { friend ...
- retrofit 基础使用
1.先导入依赖 加上网络权限 <uses-permission android:name="android.permission.INTERNET" /> 2.创建接口 ...
- python之random模块分析(一)
random是python产生伪随机数的模块,随机种子默认为系统时钟.下面分析模块中的方法: 1.random.randint(start,stop): 这是一个产生整数随机数的函数,参数start代 ...
- HDFS安全模式
用户可以通过dfsadmin -safemode value 来操作安全模式,参数value的说明如下: enter - 进入安全模式 leave - 强制NameNode离开安全模式 get - 返 ...
- ARMV8 datasheet学习笔记3:AArch64应用级体系结构之Memory order
1.前言 2.基本概念 Observer 可以发起对memory read/write访问的都是observer; Observability 是一种观察能力,通过read可以感知到别的observe ...
- git 使用https 和SSH 提交远程库小总结
一.使用https提交远程库 首先已经git commit -m “注释” 本地仓库关联远程github服务器:git remote add origin “https://XXXX.git” 提交 ...
- spring事物深入了解
1.问题 1.以前对事物的了解只是停留在声明式事物,配置xml,或使用注解,事物的传播行为也只用过REQUIRED和SUPPORTS,可以说对事物的了解很模糊. 2.直到在开发中遇到问题.. 问题的描 ...
- Linux内核移植
实验步骤:(1)准备工作(2)修改顶层Makefile(3)修改falsh 分区(4)配置编译内核 下面以Linux2.6.30.4内核移植到gec2440为例: 一.准备工作:建立工作目录,下载内核 ...