利用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,可以轻松地在终端上创建漂亮而简单的表格,并且还可以根据需要进行自定义样式和对齐方式的设置。这将帮助你更好地理解和展示数据。
