欢迎访问宙启技术站
智能推送

利用TerminalTables和Python创建漂亮而简单的终端表格

发布时间:2024-01-04 10:43:11

TerminalTables是一个Python库,可以用来在终端上创建漂亮而简单的表格。它提供了一个简单而灵活的方式来格式化和显示数据,使其更易于阅读和理解。以下是使用TerminalTables创建终端表格的使用示例。

首先,确保你已经安装了TerminalTables库。你可以使用以下命令来安装:

pip install terminaltables

接下来,创建一个Python脚本,并导入TerminalTables库:

from terminaltables import AsciiTable

我们将使用AsciiTable来创建一个ASCII格式的终端表格。接下来,定义一个包含表格数据的二维列表:

table_data = [
    ['Name', 'Age', 'Country'],
    ['John Doe', 25, 'USA'],
    ['Jane Smith', 30, 'UK'],
    ['Bob Johnson', 35, 'Canada']
]

此处,我们定义了一个包含4行3列数据的表格, 行包含列的标题。

接下来,创建一个AsciiTable对象,并将数据设置为刚刚定义的table_data:

table = AsciiTable(table_data)

然后,可以使用.table属性获取表格的ASCII格式字符串表示:

table_string = table.table
print(table_string)

此处,我们将ASCII格式的表格字符串打印到终端。

输出如下:

+------------+-----+---------+
|    Name    | Age | Country |
+------------+-----+---------+
|  John Doe  |  25 |   USA   |
| Jane Smith |  30 |   UK    |
| Bob Johnson|  35 | Canada  |
+------------+-----+---------+

可以看到,我们的表格已经以漂亮的ASCII格式显示出来。

你还可以为表格设置不同的样式和对齐方式。例如,我们可以将表格的标题字体加粗,并将所有列都居中对齐。以下是如何实现的:

table.title = 'User Info'
table.inner_row_border = True
table.justify_columns = {0: 'center', 1: 'center', 2: 'center'}

这里,我们使用.title属性为表格设置标题,使用.inner_row_border属性在每一行之间显示分隔线,并使用.justify_columns属性将所有列设置为居中对齐。

完整的代码如下:

from terminaltables import AsciiTable

table_data = [
    ['Name', 'Age', 'Country'],
    ['John Doe', 25, 'USA'],
    ['Jane Smith', 30, 'UK'],
    ['Bob Johnson', 35, 'Canada']
]

table = AsciiTable(table_data)
table.title = 'User Info'
table.inner_row_border = True
table.justify_columns = {0: 'center', 1: 'center', 2: 'center'}

table_string = table.table
print(table_string)

输出如下:

+-----+-----+---------+
|         User Info         |
+-----+-----+---------+
| Name    | Age | Country |
+-----+-----+---------+
|John Doe|  25 |   USA   |
+-----+-----+---------+
|Jane Smith|  30 |   UK    |
+-----+-----+---------+
|Bob Johnson|  35 | Canada  |
+-----+-----+---------+

通过以上示例,你可以看到通过TerminalTables,可以轻松地在终端上创建漂亮而简单的表格,并且还可以根据需要进行自定义样式和对齐方式的设置。这将帮助你更好地理解和展示数据。