Как установить модуль prettytable в python
Перейти к содержимому

Как установить модуль prettytable в python

  • автор:

Модуль PrettyTable в Python, вывод табличных данных

Вывод табличных данных в терминал или текстовый файл

Модуль prettytable — полезен при создании простых таблиц и вывода их в терминал или текстовый файл. Он был вдохновлен таблицами ASCII, используемыми в оболочке PostgreSQL.

Возможности модуля prettytable :

  • установка ширина заполнения столбца, выравнивание текста или граница таблицы;
  • сортировка данных;
  • выбор отображения столбцов и строк в окончательном выводе;
  • чтение данных из CSV, HTML или курсора базы данных;
  • вывод данных в ASCII или HTML.

Установка модуля PrettyTable в виртуальное окружение:

# создаем виртуальное окружение $ python3 -m venv .venv --prompt VirtualEnv # активируем виртуальное окружение $ source .venv/bin/activate # ставим модуль prettytable (VirtualEnv) Idea@Centre:~$ python -m pip install -U prettytable

Создание таблицы и добавление данных.

Для начала, необходимо создать экземпляр PrettyTable() , а затем можно добавлять в него некоторые данные. Eсть несколько вариантов добавления данных.

# импорт установленного модуля from prettytable import PrettyTable # создание экземпляра mytable = PrettyTable() 
Добавление данных построчно.

Можно добавлять данные по одной строке за раз. Для этого необходимо сначала установить имена полей, используя атрибут PrettyTable.field_names , а затем добавлять строки по одной, используя метод PrettyTable.add_row() :

from prettytable import PrettyTable mytable = PrettyTable() # имена полей таблицы mytable.field_names = ["City name", "Area", "Population", "Annual Rainfall"] # добавление данных по одной строке за раз mytable.add_row(["Adelaide", 1295, 1158259, 600.5]) mytable.add_row(["Brisbane", 5905, 1857594, 1146.4]) mytable.add_row(["Darwin", 112, 120900, 1714.7]) mytable.add_row(["Hobart", 1357, 205556, 619.5]) mytable.add_row(["Sydney", 2058, 4336374, 1214.8]) mytable.add_row(["Melbourne", 1566, 3806092, 646.9]) mytable.add_row(["Perth", 5386, 1554769, 869.4]) # вывод таблицы в терминал print(mytable) 

Вид вывода таблицы в терминале

+-----------+------+------------+-----------------+ | City name | Area | Population | Annual Rainfall | +-----------+------+------------+-----------------+ | Adelaide | 1295 | 1158259 | 600.5 | | Brisbane | 5905 | 1857594 | 1146.4 | | Darwin | 112 | 120900 | 1714.7 | | Hobart | 1357 | 205556 | 619.5 | | Sydney | 2058 | 4336374 | 1214.8 | | Melbourne | 1566 | 3806092 | 646.9 | | Perth | 5386 | 1554769 | 869.4 | +-----------+------+------------+-----------------+

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

Добавление сразу всех строк.

Когда есть список строк, то можно добавить их за один раз с помощью метода PrettyTable.add_rows() :

from prettytable import PrettyTable mytable = PrettyTable() # имена полей таблицы mytable.field_names = ["City name", "Area", "Population", "Annual Rainfall"] # добавление списка строк mytable.add_rows( [ ["Adelaide", 1295, 1158259, 600.5], ["Brisbane", 5905, 1857594, 1146.4], ["Darwin", 112, 120900, 1714.7], ["Hobart", 1357, 205556, 619.5], ["Sydney", 2058, 4336374, 1214.8], ["Melbourne", 1566, 3806092, 646.9], ["Perth", 5386, 1554769, 869.4], ] ) print(mytable) 
Добавление данных колонками.

Также можно добавлять данные по одному столбцу за раз. Для этого необходимо использовать метод PrettyTable.add_column() , который принимает два аргумента — строку, которая является именем поля таблицы добавляемого столбца, и список или кортеж, содержащий данные столбца:

from prettytable import PrettyTable mytable = PrettyTable() # Добавление колонки таблицы с именем 'City name' mytable.add_column("City name", ["Adelaide", "Brisbane", "Darwin", "Hobart", "Sydney", "Melbourne", "Perth"]) # Добавление колонки таблицы с именем 'Area' mytable.add_column("Area", [1295, 5905, 112, 1357, 2058, 1566, 5386]) # Добавление колонки таблицы с именем 'Population' mytable.add_column("Population", [1158259, 1857594, 120900, 205556, 4336374, 3806092, 1554769]) # Добавление колонки таблицы с именем 'Annual Rainfall' mytable.add_column("Annual Rainfall", [600.5, 1146.4, 1714.7, 619.5, 1214.8, 646.9, 869.4]) print(mytable) 
Импорт данных из файла CSV.

Если данные таблицы хранятся в файле CSV, то можно прочитать эти данные и добавить в таблицу PrettyTable() следующим образом:

# импорт загрузчика `from_csv` from prettytable import from_csv with open("myfile.csv") as fp: # создание таблицы из `myfile.csv` mytable = from_csv(fp) print(mytable) 
Импорт данных из курсора базы данных.

Если данные таблицы хранятся в базе данных, к которой можно получить доступ с помощью модуля имеющего Python DB-API (например, база данных SQLite, доступная с помощью модуля sqlite3 ), то можно создать экземпляр PrettyTable() с данными, используя объект курсора, например:

import sqlite3 # импорт загрузчика `from_db_cursor` from prettytable import from_db_cursor connection = sqlite3.connect("mydb.db") cursor = connection.cursor() cursor.execute("SELECT field1, field2, field3 FROM my_table") # создание таблицы из объекта курсора mytable = from_db_cursor(cursor) print(mytable) 
  • КРАТКИЙ ОБЗОР МАТЕРИАЛА.
  • Печать табличных данных в файл, модуль prettytable
  • Удаление данных из таблицы, модуль prettytable
  • Управление выводом таблицы, модуль prettytable
  • Управление внешним видом таблицы, модуль prettytable
  • Генерация HTML и JSON при помощи prettytable

Добавление, удаление, и поиск элемента в таблице. PrettyTable

Такая история, нужно изначально сделать так что бы в таблицу можно было добавить, удалить или найти эллемент. Не пойму как это реализовать, хотя бы добавление строки в список.
То есть задумка такая, при выполнении программы появлялся список из 3 пунктов на выбор:

1)Добавить в список книг.
2)Удалить из списка книг.
3)Найти книгу в таблице.
>>>1
Введите автора: .
Введите название книги: «. «

#И выводит уже обновленную таблицу с новой строкой номером, автором, и названием книги.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
from prettytable import PrettyTable # Импортируем установленный модуль. x = PrettyTable() #задаём таблице короткое значение x # Определяем шапку. x.field_names = ['Номер', 'Автор', 'Книга'] #Определяем данные x.add_row([1, 'Толстой Л.Н.', 'Анна Каренина']) x.add_row([2, 'Гоголь Н.В.', 'Ревизор']) x.add_row([3, 'Достоевкий Ф.М.', 'Преступление и наказание']) columns = len(th) # Подсчитаем кол-во столбцов на будущее. table = PrettyTable(th) # Определяем таблицу. # Cкопируем список td, на случай если он будет использоваться в коде дальше. td_data = td[:] # Входим в цикл который заполняет нашу таблицу. # Цикл будет выполняться до тех пор пока у нас не кончатся данные # для заполнения строк таблицы (список td_data). while td_data: # Используя срез добавляем первые три элемента в cтроку. # (columns = 3). table.add_row(td_data[:columns]) # Используя срез переопределяем td_data так, чтобы он # больше не содержал первых 3 элементов. td_data = td_data[columns:] print(table) # Печатаем таблицу def reverse(text): return text[::-1] def is_palindrome(text): return text == reverse(text) something = input('Введите автора: ') def reverse(text): return text[::-1] def is_palindrome(text): return text == reverse(text) something = input('Введите название книги: ') list =td list.index(td) print(td[2])

как установить prettytable

введите сюда описание изображения

Не могу установить prettytable . Запускаю Python. Далее: pip install -U prettytable и получаю ошибку.

Отслеживать
user299383
задан 4 мар 2021 в 10:09
69 8 8 бронзовых знаков

Устанавливать надо не из питона. Если у вас Anaconda , то устанавливать из Anaconda prompt , а так вообще просто из системы устанавливайте.

4 мар 2021 в 10:14
Не нужно запускать Python. Запускаете cmd, в нем pip install -U prettytable
4 мар 2021 в 10:24
а что такое cmd?
4 мар 2021 в 10:39
@сергей cmd — командная строка. Win + R и в отрывшемся окне пишете cmd , потом Enter
4 мар 2021 в 10:45
Возможный дубликат вопроса: Не работает pip install в Питон консоли
5 мар 2021 в 5:52

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Вы выполняете команду pip install -U prettytable в самом интерпритаторе Python. Вместо этого выполните ее в командной строке, запущенной от имени администратора.

Если же в командной строке у вас напишет, что команды pip не существует, то пропишите команду: python -m pip install prettytable . Однако в данном случае я советую вам переустановить python, и при повторной установке прописать Python в PATH.

Отслеживать
ответ дан 4 мар 2021 в 17:35
user299383 user299383
а как прописать Python в PATH?
5 мар 2021 в 1:37
@сергей, во время установки Python установите галочку у надписи «Add Python to PATH»
– user299383
5 мар 2021 в 5:40

Используй pip install prettytable , так написано на странице библиотеки на PyPi это в качестве альтернативы

P.s выполняйте эту команду не в интерпретаторе Python, в командной строке (желательно с правами администратора)

Отслеживать
ответ дан 29 сен 2021 в 7:20
73 9 9 бронзовых знаков

  • python
  • pip
  • prettytable
    Важное на Мете
Связанные
Похожие

Подписаться на ленту

Лента вопроса

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

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

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

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])

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

Вы также можете добавлять данные по одному столбцу за раз. Для этого используется метод 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 = from_cursor(cur)

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

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

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

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

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

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

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

print(x)

Заключение

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

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

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *