HangOps.ru

Печать таблицы в консоли Python

Отображение ваших данных в консоли в виде форматированной таблицы может быть полезно во многих случаях. Это позволяет легко просматривать данные. В этом посте я расскажу о различных модулях, которые могут помочь вам это сделать.

Хотите освоить язык программирования Python и начать создавать собственные проекты? Загляните на нашу страницу с курсами Python для начинающих, где вы найдете лучшие образовательные ресурсы от ведущих онлайн-платформ. Начните свой путь в программировании уже сегодня!

PrettyTable

Установка

pip install PrettyTable

Документация

https://ptable.readthedocs.io/en/latest/tutorial.html

Использование

Импортируйте PrettyTable из модуля pretty table и создайте новую таблицу. Затем вы можете использовать функцию add_row, чтобы добавить новую строку в таблицу.

from prettytable import PrettyTable

my_table = PrettyTable()

my_table.add_row([1, "Bob", 6, 11])
my_table.add_row([2, "Freddy", 4, 10])
my_table.add_row([3, "John", 7, 13])

print(my_table)

Вывод:

+---------+---------+---------+---------+
| Field 1 | Field 2 | Field 3 | Field 4 |
+---------+---------+---------+---------+
|    1    |   Bob   |    6    |    11   |
|    2    |  Freddy |    4    |    10   |
|    3    |   John  |    7    |    13   |
+---------+---------+---------+---------+

Поля помечены как Field 1, Field 2 и так далее. Если вам нужны пользовательские имена полей, вы можете для этого использовать field_names.

from prettytable import PrettyTable

my_table = PrettyTable()

my_table.field_names = ["No.", "Name", "Grade", "Age"]

my_table.add_row([1, "Bob", 6, 11])
my_table.add_row([2, "Freddy", 4, 10])
my_table.add_row([3, "John", 7, 13])

print(my_table)

Вывод:

+-----+--------+-------+-----+
| No. |  Name  | Grade | Age |
+-----+--------+-------+-----+
|  1  |  Bob   |   6   |  11 |
|  2  | Freddy |   4   |  10 |
|  3  |  John  |   7   |  13 |
+-----+--------+-------+-----+

Сортировка строк таблицы

Pretty Table также предоставляет функцию сортировки данных по определенному полю. Например, если бы мы хотели отсортировать людей по возрасту Age в приведенной выше таблице, мы могли бы использовать опцию sortby.

from prettytable import PrettyTable

my_table = PrettyTable()

my_table.field_names = ["No.", "Name", "Grade", "Age"]

my_table.add_row([1, "Bob", 6, 11])
my_table.add_row([2, "Freddy", 4, 10])
my_table.add_row([3, "John", 7, 13])

my_table.sortby = 'Age'

print(my_table)

Вывод:

+-----+--------+-------+-----+
| No. |  Name  | Grade | Age |
+-----+--------+-------+-----+
|  2  | Freddy |   4   |  10 |
|  1  |  Bob   |   6   |  11 |
|  3  |  John  |   7   |  13 |
+-----+--------+-------+-----+

Данные сортируются в порядке возрастания. Если требуется отсортировать данные в порядке убывания, можно использовать опцию обратной сортировки.

from prettytable import PrettyTable

my_table = PrettyTable()

my_table.field_names = ["No.", "Name", "Grade", "Age"]

my_table.add_row([1, "Bob", 6, 11])
my_table.add_row([2, "Freddy", 4, 10])
my_table.add_row([3, "John", 7, 13])

my_table.sortby = 'Age'

my_table.reversesort = True

print(my_table)

Вывод:

+-----+--------+-------+-----+
| No. |  Name  | Grade | Age |
+-----+--------+-------+-----+
|  3  |  John  |   7   |  13 |
|  1  |  Bob   |   6   |  11 |
|  2  | Freddy |   4   |  10 |
+-----+--------+-------+-----+

Удалить строки таблицы

Функция del_row может быть использована для удаления строки из таблицы. В качестве параметра он принимает номер строки.

from prettytable import PrettyTable

my_table = PrettyTable()

my_table.field_names = ["No.", "Name", "Grade", "Age"]

my_table.add_row([1, "Bob", 6, 11])
my_table.add_row([2, "Freddy", 4, 10])
my_table.add_row([3, "John", 7, 13])

my_table.del_row(1)

print(my_table)

Вывод:

+-----+------+-------+-----+
| No. | Name | Grade | Age |
+-----+------+-------+-----+
|  1  | Bob  |   6   |  11 |
|  3  | John |   7   |  13 |
+-----+------+-------+-----+

Очистить все данные

Все данные могут быть очищены с помощью функции clear_rows.

from prettytable import PrettyTable

my_table = PrettyTable()

my_table.field_names = ["No.", "Name", "Grade", "Age"]

my_table.add_row([1, "Bob", 6, 11])
my_table.add_row([2, "Freddy", 4, 10])
my_table.add_row([3, "John", 7, 13])

my_table.clear_rows()

print(my_table)

Вывод:

+-----+------+-------+-----+
| No. | Name | Grade | Age |
+-----+------+-------+-----+
+-----+------+-------+-----+

TextTable

Установка

pip install texttable

Документация

https://texttables.readthedocs.io/en/latest/

Использование

Когда я начал читать стартовую страницу справки этого пакета, я сразу понял, что этот модуль более продвинутый, чем другие.

Давайте начнем с очень простого примера использования. Распечатайте простую таблицу.

from texttable import Texttable

table = Texttable()
table.header(["No.", "Name", "Grade", "Age"])
table.add_row([1, "Bob", 6, 11])
table.add_row([2, "Freddy", 4, 10])
table.add_row([3, "John", 7, 13])

print(table.draw())

Вывод:

+-----+--------+-------+-----+
| No. |  Name  | Grade | Age |
+=====+========+=======+=====+
| 1   | Bob    | 6     | 11  |
+-----+--------+-------+-----+
| 2   | Freddy | 4     | 10  |
+-----+--------+-------+-----+
| 3   | John   | 7     | 13  |
+-----+--------+-------+-----+

Источник

Python