Uso Prático de Módulos do Python

sys

No Python 3.2, o módulo sys descontinuou o método setdefaultencoding. Este era empregado para contornar questões de codificação no Python 2.x, mas tornou-se obsoleto após a consolidação do UTF-8 na versão 3.x.

hashlib

O módulo hashlib fornece funções para gerar hashes criptográficos. Abaixo, um exemplo demonstrando diferentes algoritmos:

import hashlib

def gerar_resumo(mensagem, algoritmo='sha256'):
    dados = mensagem.encode('utf-8')
    funcao_hash = getattr(hashlib, algoritmo)
    return funcao_hash(dados).hexdigest()

print(gerar_resumo('teste', 'md5'))  # Exemplo: 098f6bcd4621d373cade4e832627b4f6
print(gerar_resumo('teste', 'sha1'))
print(gerar_resumo('teste', 'sha512'))

# Geração de strings aleatórias usando hash
import os
import time

def criar_string_aleatoria():
    base = os.urandom(16) + str(time.time()).encode('utf-8')
    return hashlib.sha1(base).hexdigest()

print(criar_string_aleatoria())

math

O módulo math oferece operações matemáticas. Note que math.floor retorna um inteiro no Python 3, diferentemente do Python 2.

import math

# Arredondamento para baixo
valor = 32.93
print(math.floor(valor))  # Saída: 32
print(type(math.floor(valor)))  # Saída: <class 'int'>

# Operações com potências e raízes
print(math.pow(2, 10))  # 1024.0
print(math.sqrt(256))   # 16.0
print(pow(27, 1/3))     # 3.0

keyword

O módulo keyword auxilia a identificar palavras-chave reservadas do Python.

import keyword

termo = 'def'
print(f"'{termo}' é palavra-chave? {keyword.iskeyword(termo)}")  # True

todas_chaves = keyword.kwlist
print(todas_chaves[:5])  # Exemplo: ['False', 'None', 'True', 'and', 'as']

platform

Para obter informações detalhadas sobre o sistema operacional e hardware, utilize o módulo platform.

import platform

detalhes = {
    'arquitetura': platform.machine(),
    'nome_rede': platform.node(),
    'sistema': platform.platform(),
    'processador': platform.processor()
}

for chave, valor in detalhes.items():
    print(f"{chave}: {valor}")

getpasss

O módulo getpass permite a entrada segura de senhas no terminal, sem exibição na tela.

import getpass

usuario = getpass.getuser()
senha = getpass.getpass(prompt=f'Senha para {usuario}: ')
print('Autenticação concluída.')

shelve

O módulo shelve oferece persistência simples para objetos Python, como um dicionário persistente.

import shelve

# Armazenamento de dados
with shelve.open('meus_dados') as db:
    db['configuracoes'] = {'tema': 'escuro', 'volume': 80}
    db['numeros'] = [10, 20, 30]

# Recuperação de dados
with shelve.open('meus_dados', flag='r') as db:
    print(db['configuracoes']['tema'])  # escuro
    print(db['numeros'])  # [10, 20, 30]

retry

Bibliotecas como retry facilitam a repetição automática de operações que podem falhar.

from retry import retry

@retry(tries=3, delay=2)
def acessar_recurso():
    # Simulação de uma chamada que pode falhar
    raise ConnectionError('Falha na rede')

try:
    acessar_recurso()
except ConnectionError:
    print('Tentativas esgotadas.')

shutil

O módulo shutil disponibiliza funções avançadas para manpiulação de arquivos e diretórios.

import shutil

# Cópia e movimentação de arquivos
shutil.copy('origem.txt', 'destino.txt')
shutil.move('documentos/', 'backup/')

# Compressão de diretórios
shutil.make_archive('arquivo_backup', 'zip', 'meu_projeto')

# Descompressão
shutil.unpack_archive('arquivo_backup.zip', 'projeto_restaurado')

tqdm

A biblioteca tqdm cria barras de progresso eficientes para loops e operações longas.

from tqdm import tqdm
import time

# Iteração com barra de progresso
for i in tqdm(range(100), desc='Processando'):
    time.sleep(0.05)

# Exemplo com transferência de dados simulada
total_bytes = 1024 * 50
with tqdm(total=total_bytes, unit='B', unit_scale=True) as barra:
    transferido = 0
    while transferido < total_bytes:
        # Simula a leitura de dados
        chunk = min(1024, total_bytes - transferido)
        time.sleep(0.01)
        transferido += chunk
        barra.update(chunk)

ansible

No Linux, o ansible pode ser instalado via pip. No Windows, o processo é mais complexo, exigindo a instalação manual a partir do código-fonte.

# Após a instalação, a importação deve funcionar
import ansible
print('Ansible instalado com sucesso.')

tabulate

A biblioteca tabulate converte dados em tabelas formatadas para exibição no console.

from tabulate import tabulate

dados_vendas = [
    ['Produto A', 150, 4500.00],
    ['Produto B', 200, 8000.00],
    ['Produto C', 50, 1250.00]
]
cabecalhos = ['Produto', 'Quantidade', 'Receita (R$)']

# Exibição em formato simples
print(tabulate(dados_vendas, headers=cabecalhos, tablefmt='grid'))

# Formato markdown
print(tabulate(dados_vendas, headers=cabecalhos, tablefmt='pipe'))

Tags: Python hashlib math keyword platform

Publicado em 6-9 19:37 por Thomas