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