python之terminaltables

1. 简介

Terminaltables是一个Python库,用于在终端显示漂亮的表格。它允许轻松地创建表格,并支持自定义单元格样式、单元格渲染和分页等功能。Terminaltables的主要优点是易于使用和高度可定制性。它是一个完全免费、开源的库,可用于任何Python项目中。

2. 安装

2.1 pip 安装

使用 pip 命令来安装Terminaltables

pip install terminaltables

2.2 clone 安装

从Github上下载源代码来手动安装

git clone https://github.com/Robpol86/terminaltables.git

cd terminaltables

python setup.py install

3. 使用 Terminaltables 创建表格

在创建表格之前,首先需要导入Terminaltables库

from terminaltables import AsciiTable

3.1 创建基本的表格

一个基本的表格由行和列组成。每个单元格都是一个数据单元格。

table_data = [

['Name', 'Age', 'Sex'],

['John Smith', 35, 'Male'],

['Sarah Johnson', 28, 'Female'],

['Michael Brown', 45, 'Male'],

]

table = AsciiTable(table_data)

print(table.table)

输出结果为:

+----------------+-----+--------+

| Name | Age | Sex |

+----------------+-----+--------+

| John Smith | 35 | Male |

| Sarah Johnson | 28 | Female |

| Michael Brown | 45 | Male |

+----------------+-----+--------+

3.2 自定义单元格样式

Terminaltables允许用户自定义单元格样式。每个单元格都可以用不同的颜色、背景颜色和边框样式来渲染。

from terminaltables import SingleTable

table_data = [

['Name', 'Age', 'Sex'],

['John Smith', 35, 'Male'],

['Sarah Johnson', 28, 'Female'],

['Michael Brown', 45, 'Male'],

]

table_instance = SingleTable(table_data, 'Contacts')

table_instance.justify_columns[1] = 'right' # 右对齐 Age 列

table_instance.table_data[0] = [val.upper() for val in table_instance.table_data[0]] # Name, Age, Sex 大写

table_instance.inner_row_border = True # 显示行内边框

table_instance.inner_column_border = False # 不显示列内边框

table_instance.title = table_instance.title.upper() # Contacts 大写

print(table_instance.table)

输出结果为:

.------------.----------------.------.

| CONTACTS | AGE | |

+------------+----------------+------+

| NAME | SEX | AGE |

+------------+----------------+------+

| JOHN SMITH | Male | 35 |

| SARAH JOHNSON | Female | 28 |

| MICHAEL BROWN | Male | 45 |

'-------------'----------------'------'

3.3 分页输出表格

当表格数据很大时,可以使用Terminaltables的Pager,将表格分成多个页面,每页包含指定行数的数据。

from terminaltables import AsciiTable, Pager

data = []

for i in range(1, 101):

data.append(['user{}'.format(i), 'pwd{}'.format(i)])

table = AsciiTable(data)

pager = Pager(rows=10)

page_num = 1

while True:

print('\nPage: {}\n'.format(page_num))

table.page_number = page_num

pager.append(table.table)

page_num += 1

if not pager.more:

break

input('Press Enter to continue...')

print(chr(27) + "[2J") # 清屏

注意:使用该代码需要在终端中运行,或者在支持终端显示的程序中运行。

4. 结论

Terminaltables是一个易于使用且高度可定制的Python库,它可帮助用户在终端中创建漂亮的表格。使用Terminaltables,用户可以轻松地创建和编辑表格,自定义单元格样式、单元格渲染和分页等功能,以满足他们的要求。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签