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

在Python中使用TerminalTables库生成支持颜色和边框的终端表格

发布时间:2023-12-27 09:30:57

TerminalTables是一个Python库,用于在终端中生成漂亮的表格。它支持自定义的边框样式,以及单元格中的颜色和样式。

首先,你需要安装TerminalTables库。你可以使用以下命令在终端中安装它:

pip install terminaltables

安装完成后,你可以使用以下代码创建一个简单的表格:

from terminaltables import AsciiTable

# 创建一个AsciiTable对象
table_data = [
    ['Name', 'Age', 'Country'],
    ['John Doe', '30', 'USA'],
    ['Jane Smith', '25', 'UK'],
    ['Tom Lee', '35', 'China']
]
table = AsciiTable(table_data)

# 输出表格
print(table.table)

这将输出一个包含四行三列的简单表格:

+------------+-----+---------+
|    Name    | Age | Country |
+------------+-----+---------+
| John Doe   | 30  | USA     |
| Jane Smith | 25  | UK      |
| Tom Lee    | 35  | China   |
+------------+-----+---------+

你可以使用table_data列表来传递表格数据。 行将作为表头,其余行将作为表格的行数据。

接下来,我们将演示如何使用TerminalTables库的其他功能。

#### 自定义边框样式

你可以使用table.inner_row_bordertable.inner_column_border属性来自定义边框样式。例如,你可以使用以下代码在表头和每行数据之间添加粗实线边框:

table.inner_row_border = True

这将在表格每一行的上方插入一条粗实线边框。

#### 支持颜色

TerminalTables还支持在表格单元格中设置颜色。你可以使用terminaltables.TerminalTableColor类来设置不同单元格的颜色。这个类有以下属性和方法:

- color_attributes: 用于设置颜色属性,可以设置的属性有fore(前景色)和 back(背景色)。

- get_color_string(value): 用于返回包含颜色属性的字符串。

以下是一个使用颜色的示例:

from terminaltables import AsciiTable, TerminalTableColor

# 创建一个AsciiTable对象
table_data = [
    ['Name', 'Age', 'Country'],
    ['John Doe', '30', 'USA'],
    ['Jane Smith', '25', 'UK'],
    ['Tom Lee', '35', 'China']
]
table = AsciiTable(table_data)

# 创建TerminalTableColor对象并设置颜色属性
color_table = TerminalTableColor()
color_table.color_attributes['fore'] = 'red'  # 设置前景色为红色

# 在      行的每个单元格中应用颜色属性
for i, cell in enumerate(table.table_data[0]):
    table.table_data[0][i] = color_table.get_color_string(cell)

# 输出表格
print(table.table)

这个示例中,我们将 行中的所有单元格的文本颜色设置为红色。

#### 添加样式

你还可以使用style参数来设置表格的样式。terminaltables.AsciiTable类有以下几种预定义的样式可供选择:

- terminaltables.AsciiTable.BASIC: 基本样式,默认样式。

- terminaltables.AsciiTable.DOUBLE: 双线样式。

- terminaltables.AsciiTable.GRID: 网格样式。

- terminaltables.AsciiTable.MARKDOWN: Markdown样式。

- terminaltables.AsciiTable.PYCOLUMNS: PyColumns样式。

以下是一个使用样式的示例:

from terminaltables import AsciiTable

# 创建一个AsciiTable对象,并设置样式为Markdown
table_data = [
    ['Name', 'Age', 'Country'],
    ['John Doe', '30', 'USA'],
    ['Jane Smith', '25', 'UK'],
    ['Tom Lee', '35', 'China']
]
table = AsciiTable(table_data, style=AsciiTable.MARKDOWN)

# 输出表格
print(table.table)

这将输出一个具有Markdown样式的表格。

这只是TerminalTables库的一部分功能,你可以根据自己的需求在表格中添加更多自定义内容。希望这个例子能帮助你开始使用TerminalTables来生成漂亮的终端表格。