🐍 PrettyTable
é uma biblioteca Python que permite exibir dados em formato de tabela de maneira organizada e elegante. Com o prettytable
, é possível criar tabelas com colunas e linhas personalizadas, definir o tamanho das colunas, adicionar bordas, alinhamentos, etc. Além disso, o prettytable
suporta diferentes tipos de dados, como números, textos, datas, etc.
✅ O roteiro básico para utilizá-la é:
-
- instalação por meio do
pip
; - importação da biblioteca no seu código Python;
- criação da tabela;
- adição de rótulos para as colunas da tabela;
- adição de linhas na tabela criada;
- exibição da tabela.
- instalação por meio do
—
✅ Para instalar a biblioteca prettytable, utilize o comando:
python -m pip install -U prettytable
✅ No código Python abaixo, as seguintes tarefas foram definidas, respectivamente:
-
- Importação da biblioteca
prettytable
- Criação de um tabela vazia
- Adição de nomes (rótulos) às colunas
- Inserção dos dados de 3 (três) pessoas
- Ordenação da tabela por
Idade
- Exibição da tabela ordenada
- Ordenação da tabela por
Nome
- Exibição da tabela ordenada
- Importação da biblioteca
🐍 Programando…
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 |
# Importar o módulo prettytable from prettytable import PrettyTable # Criar uma tabela vazia table = PrettyTable() # Adicionar nomes das colunas table.field_names = ["Nome", "Idade", "Endereço", "E-mail"] # Adicionar registros à tabela table.add_row(["João da Silva", 35, "Rua X, 123", "joao@email.com"]) table.add_row(["Maria de Oliveira", 29, "Rua Y, 456", "maria@email.com"]) table.add_row(["Pedro Alves", 41, "Rua Z, 789", "pedro@email.com"]) # Ordenar a tabela por Idade (coluna 2) table.sortby = "Idade" # Exibir a tabela print(table) # Ordenar a tabela por Nome (coluna 1) table.sortby = "Nome" # Exibir a tabela print(table) |
💻 Saída:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
+-------------------+-------+------------+-----------------+ | Nome | Idade | Endereço | E-mail | +-------------------+-------+------------+-----------------+ | Maria de Oliveira | 29 | Rua Y, 456 | maria@email.com | | João da Silva | 35 | Rua X, 123 | joao@email.com | | Pedro Alves | 41 | Rua Z, 789 | pedro@email.com | +-------------------+-------+------------+-----------------+ +-------------------+-------+------------+-----------------+ | Nome | Idade | Endereço | E-mail | +-------------------+-------+------------+-----------------+ | João da Silva | 35 | Rua X, 123 | joao@email.com | | Maria de Oliveira | 29 | Rua Y, 456 | maria@email.com | | Pedro Alves | 41 | Rua Z, 789 | pedro@email.com | +-------------------+-------+------------+-----------------+ |
—
SQLite e PrettyTable
✅ Para os exemplos seguintes, crie um banco de dados SQLite chamado exemplo.bd
(recomendamos o uso do SQLiteStudio) e utilize o script SQL abaixo para criar uma tabela chamada cliente
com os campos id_cliente, nome, idade, endereco e email
:
1 2 3 4 5 6 7 |
CREATE TABLE clientes ( id_cliente INTEGER PRIMARY KEY AUTOINCREMENT, nome TEXT NOT NULL, idade INTEGER NOT NULL, endereco TEXT NOT NULL, email TEXT NOT NULL ); |
Utilize o próximo script para inserir dados fictícios na tabela cliente
:
1 2 3 4 5 6 7 |
INSERT INTO clientes (nome, idade, endereco, email) VALUES ("João Silva", 30, "Rua 1, N° 100", "joao.silva@email.com"), ("Maria Oliveira", 25, "Rua 2, N° 200", "maria.oliveira@email.com"), ("Pedro Almeida", 35, "Rua 3, N° 300", "pedro.almeida@email.com"), ("Ana Souza", 28, "Rua 4, N° 400", "ana.souza@email.com"), ("Carlos Silva", 40, "Rua 5, N° 500", "carlos.silva@email.com"); |
✅ Agora vamos utilizar a biblioteca PrettyTable para exibir os dados armazenados na tabela cliente. O código a seguir executa as seguintes tarefas:
-
- Importação da biblioteca
prettytable
e da biblioteca para manipulação de banco de dados SQLite - Conexão com o banco de dados
exemplo.db
- Criação de um cursor:
- Um cursor é um ponteiro que é usado para acessar e manipular os dados de uma base de dados. É um objeto que permite que você execute comandos SQL e navegue pelos resultados retornados.
- Execução de uma consulta SQL, por meio do cursor, para recuperação de todos os dados da tabela de clientes
- Recuperação dos dados obtidos na consulta anterior
- Criação de uma tabela vazia com os rótulos das colunas
- Preenchimento da tabela com os dados obtidos na consulta SQL
- Exibição da tabela
- Fechamento da conexão com o banco de dados
- Importação da biblioteca
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 |
# Importar as bibliotecas PrettyTabel e do SQLite from prettytable import PrettyTable import sqlite3 # Conectar ao banco de dados SQLite conn = sqlite3.connect('exemplo.db') # Criar um cursor cursor = conn.cursor() # Executar uma consulta SQL para selecionar todos os dados da tabela 'cliente' cursor.execute("SELECT * FROM clientes") # Recuperar os resultados da consulta resultados = cursor.fetchall() # Criar uma tabela prettytable table = PrettyTable(["Nome", "Idade", "Endereço", "E-mail"]) # Preencher a tabela com os dados recuperados for cliente in resultados: table.add_row(cliente) # Exibir a tabela print(table) # Fechar a conexão com o banco de dados conn.close() |
💻 Saída:
1 2 3 4 5 6 7 8 9 |
+----+----------------+-------+---------------+--------------------------+ | ID | Nome | Idade | Endereço | E-mail | +----+----------------+-------+---------------+--------------------------+ | 1 | João Silva | 30 | Rua 1, N° 100 | joao.silva@email.com | | 2 | Maria Oliveira | 25 | Rua 2, N° 200 | maria.oliveira@email.com | | 3 | Pedro Almeida | 35 | Rua 3, N° 300 | pedro.almeida@email.com | | 4 | Ana Souza | 28 | Rua 4, N° 400 | ana.souza@email.com | | 5 | Carlos Silva | 40 | Rua 5, N° 500 | carlos.silva@email.com | +----+----------------+-------+---------------+--------------------------+ |
—
*Atualizado em 4 de março de 2023