Отображение ваших данных в консоли в виде форматированной таблицы может быть полезно во многих случаях. Это позволяет легко просматривать данные. В этом посте я расскажу о различных модулях, которые могут помочь вам это сделать.
Хотите освоить язык программирования 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 |
+-----+--------+-------+-----+