PrettyTable — вывод табличных данных в ASCII

PrettyTable — это библиотека Python, разработанная для простого и быстрого отображения табличных данных в визуально удобных таблицах ASCII.

Введение

По словам автора библиотеки он был очень вдохновлен таблицами ASCII, используемых в оболочке PostgreSQL. PrettyTable позволяет выбирать, какие столбцы должны быть напечатаны, производить независимое выравнивание столбцов, а так же печать частично таблицы путем указания диапазона строк.

Установка

Существует возможность установить стабильную версию или же экспериментальную, на ваш выбор, воспользуемся для этого пакетным менеджером

Стабильная версия

Воспользуемся пакетным менеджером pip для установки из репозитория

pip install -U prettytable

Эксперементальная версия

Метод установки схожий со стабильной версией, но теперь мы устанавливаем ее из репозитория автора на github.

pip install -U git+https://github.com/jazzband/prettytable

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

Создадим объект prettytable или другими словами пустую таблицу.

from prettytable import PrettyTable
x = PrettyTable()

Для того чтобы поместить в него наши данные, у нас есть несколько способов это выполнить.

Построчный ввод

Вы можете добавлять данные по одной строке за раз. Для этого можно сначала задать имена полей с помощью атрибута field_names, а затем добавить строки по одной с помощью метода add_row:

x.field_names = ["Сотрудник", "Возраст", "Должность", "Оклад"]
x.add_row(["Николай", 43, "Плотник", 25000])
x.add_row(["Андрей", 29, "Менеджер", 30000])
x.add_row(["Анатолий", 19, "Практикант", 12500])
x.add_row(["Юлия", 27, "Секретарь", 35000])
x.add_row(["Наталья", 35, "Руководитель отдела продаж", 40000])
x.add_row(["Екатерина", 30, "Менеджер", 27000])
x.add_row(["Георгий", 44, "Охранник", 17500])

Ввод данных по одному столбцу

PrettyTable - это библиотека Python, разработанная для простого и быстрого отображения табличных данных в визуально удобных таблицах ASCII.

Вы также можете добавлять данные по одному столбцу за раз. Для этого используется метод add_column, который принимает два аргумента, название столбца и список или кортеж, содержащий значения.

x.add_column("Сотрудник", ["Николай", "Андрей", "Анатолий", "Юлия", "Наталья", "Екатерина", "Георгий"])
x.add_column("Возраст", [43, 29, 19, 27, 35, 30, 44])
x.add_column("Должность", ["Плотник", "Менеджер", "Практикант", "Секретарь", "Руководитель отдела продаж", "Менеджер", "Охранник"])
x.add_column("Annual Оклад", [25000, 30000, 12500, 35000, 40000, 27000, 17500])

Импорт данных из CSV-файла

Если вы храните данные в таблицах CSV вы можете прочитать эти данные в красивую таблицу всего парой строк кода:

from prettytable import from_csv

f = open("table.csv", "r")
table = from_csv(f)
f.close()

Импорт из базы данных

Если вы храните информацию в реляционных базах данных, то при наличии поддержки Python DB-API в реализации ее библиотеке вы сможете импортировать их в таблицу с помощью объекта курсора

import sqlite3
from prettytable import from_cursor

conn = sqlite3.connect("db.sqlite3")
cur = conn.cursor()
cur.execute("SELECT field FROM table WHERE id=1")
x = from_cursor(cur)

Удаление данных

Существует три способа удаления данных

  • Метод del_row принимает целочисленный индекс одной строки для удаления.
  • Метод clear_rows не принимает аргументов и удаляет все строки в таблице, но сохраняет имена полей такими, какими они были, чтобы вы могли повторно заполнить их данными.
  • Метод clear не принимает аргументов и удаляет все строки и все имена полей. Это не совсем то же самое, что создание нового экземпляра таблицы, хотя связанные со стилем настройки сохраняются.

Отображение вашей таблицы в ASCII

Так же у меня есть группа ВКонтакте @yegorovegor. Обязательно подпишись!

Основная цель PrettyTable — позволить вам печатать таблицы в привлекательной форме ASCII, например так:

+-----------+---------+----------------------------+-------+
 | Сотрудник | Возраст |         Должность          | Оклад |
 +-----------+---------+----------------------------+-------+
 |  Николай  |    43   |          Плотник           | 25000 |
 |   Андрей  |    29   |          Менеджер          | 30000 |
 |  Анатолий |    19   |         Практикант         | 12500 |
 |    Юлия   |    27   |         Секретарь          | 35000 |
 |  Наталья  |    35   | Руководитель отдела продаж | 40000 |
 | Екатерина |    30   |          Менеджер          | 27000 |
 |  Георгий  |    44   |          Охранник          | 17500 |
 +-----------+---------+----------------------------+-------+

Распечатать таблицу в формате ASCII очень просто, достаточно сделать это:

print(x)

Заключение

Мы рассмотрели библиотеку PrettyTable, варианты ее установки, принципы использования, построчный ввод, импорт данных из csv таблицы и базы данных.

Это не полный функционал, более подробную информацию об использование параметров таблицы, сортировки данных, печать в другие форматы (HTML/JSON) вы можете найти на официальной странице разработчика

close

Изучаешь Python?

Оформи подписку и получи моментальный доступ к новым публикациям

Обязательно прочитайте другие статьи посвященные языку программирования Python


GeekUniversity - обучение до уровня Middle с гарантированным трудоустройством


Добавить комментарий

Ваш адрес email не будет опубликован