Módulo os
Este módulo oferece funcionalidades para enteragir com o sistema operacional, incluindo manipulação de arquivos, diretórios e variáveis de ambiente.
import os
# Verificar o sistema operacional atual
tipo_sistema = os.name # 'nt' no Windows, 'posix' no Linux
# Ler variável de ambiente PATH
caminho_path = os.getenv("PATH")
# Criar um único diretório
os.mkdir("pasta_nova")
# Criar diretórios recursivamente
os.makedirs("nivel1/nivel2", mode=0o777)
# Obter o diretório de trabalho atual
dir_atual = os.getcwd()
# Dividir um caminho completo em diretório e arquivo
partes = os.path.split("/home/usuario/documento.txt")
# Acessar a data de criação de um arquivo
data_criacao = os.getctime("documento.txt")
# Calcular o tamanho de um arquivo em bytes
tamanho = os.path.getsize("documento.txt")
# Excluir um arquivo
os.remove("arquivo_obsoleto.txt")
# Renomear um arquivo ou diretório
os.rename("nome_antigo.txt", "nome_novo.txt")
# Verificar se um caminho é arquivo, diretório ou existe
if os.path.isfile("dados.txt"):
print("Caminho aponta para um arquivo")
if os.path.isdir("pasta"):
print("Caminho aponta para um diretório")
if os.path.exists("recurso"):
print("O recurso está disponível")
# Listar itens em um diretório
itens = os.listdir("/caminho/para/diretorio")
# Percorrer um diretório de forma recursiva
for raiz, subdirs, arquivos in os.walk("/diretorio/base"):
for nome_arquivo in arquivos:
caminho_arquivo = os.path.join(raiz, nome_arquivo)
print(caminho_arquivo)
Módulo sys
O módulo sys provê acesso a variáveis e funções relacionadas ao interpretador Python.
import sys
# Encerrar a execução do programa
sys.exit(1) # Código de saída pode indicar erro
# Verificar a versão do Python
versao_python = sys.version
# Acessar fluxos de entrada e saída padrão
entrada_usuario = sys.stdin.readline()
sys.stdout.write("Mensagem de saída\n")
sys.stderr.write("Mensagem de erro\n")
# Modificar dinamicamente o caminho de busca de módulos
sys.path.append("/caminho/personalizado")
sys.path.insert(0, "/prioritario") # Inserir no início para sobrescrever módulos
Módulo time
Utilizado para operações relacionadas a tempo, como pausas, obtenção de timestamps e formatação de datas.
import time
# Aguardar por um período específico (em segundos)
time.sleep(3)
# Obter o timestamp Unix atual
timestamp_atual = time.time()
# Converter para uma string legível
hora_atual = time.ctime()
# Formatar a data e hora conforme especificado
formato = time.strftime("%d/%m/%Y %H:%M:%S")
Módulo pickle
Possibilita a serialização e desserialização de objetos Python, facilitando o armazenamento e transporte de dados.
import pickle
# Serializar um objeto para bytes
objeto_dados = [1, 2, {"chave": "valor"}]
bytes_dados = pickle.dumps(objeto_dados)
# Desserializar bytes para recuperar o objeto
objeto_recuperado = pickle.loads(bytes_dados)
# Salvar objeto diretamente em um arquivo
with open("persistencia.pkl", "wb") as arq:
pickle.dump(objeto_dados, arq)
# Carregar objeto de um arquivo
with open("persistencia.pkl", "rb") as arq:
objeto_de_arquivo = pickle.load(arq)
Módulo json
Utilizado para codificar e decodificar dados no formato JSON, amplamente usado em APIs e armazenamento de configurações.
import json
# Converter uma lista ou dicionário para string JSON
dados_originais = {"usuario": "ana", "pontuacao": 95}
string_json = json.dumps(dados_originais)
# Converter string JSON de volta para objeto Python
objeto_json = json.loads(string_json)
# Escrever dados JSON em um arquivo
with open("configuracoes.json", "w") as arq_json:
json.dump(dados_originais, arq_json)
# Ler dados de um arquivo JSON
with open("configuracoes.json", "r") as arq_json:
dados_lidos = json.load(arq_json)
Módulo shutil
Fornece operações de alto nível em arquivos e diretórios, como cópia, movimentação e remoção.
import shutil
# Copiar um arquivo para um novo destino
shutil.copy("fonte.txt", "copia.txt")
# Mover um arquivo ou diretório
shutil.move("local_antigo/", "local_novo/")
SQLite com Python
SQLite é um banco de dados leve e autônomo, ideal para armazenamento local em aplicações Python. Pode ser usado para prototipagem ou dados internos.
import sqlite3
import shutil
# Definir caminhos para os bancos de dados
bd_principal = "meus_dados.db"
bd_seguranca = "backup.db"
# Função para criar uma cópia de segurança
def gerar_backup():
try:
shutil.copy2(bd_principal, bd_seguranca)
print("Backup concluído com êxito.")
except Exception as e:
print(f"Erro durante o backup: {str(e)}")
# Função para restaurar a partir de um backup
def restaurar_backup():
try:
shutil.copy2(bd_seguranca, bd_principal)
print("Restauração realizada com sucesso.")
except Exception as e:
print(f"Falha na restauração: {str(e)}")
# Menu interativo simples
while True:
print("\nMenu:")
print("1. Realizar Backup")
print("2. Restaurar Backup")
print("3. Sair")
escolha = input("Digite sua opção: ")
if escolha == '1':
gerar_backup()
elif escolha == '2':
restaurar_backup()
elif escolha == '3':
break
else:
print("Opção não reconhecida.")
Pillow para Processamento de Imagens
Pillow é uma bbilioteca para manipulação de imagens em Python, suportando operações como redimensionamento, conversão de formatos e filtros.
from PIL import Image
import os
caminho_entradas = "/imagens/originais"
caminho_saidas = "/imagens/processadas"
dimensoes_alvo = (200, 200)
for nome in os.listdir(caminho_entradas):
caminho_entrada = os.path.join(caminho_entradas, nome)
with Image.open(caminho_entrada) as img:
img.thumbnail(dimensoes_alvo)
caminho_saida = os.path.join(caminho_saidas, nome)
img.save(caminho_saida)
BeautifulSoup para Web Scraping
BeautifulSoup é uma biblioteca para análise de HTML e XML, comumente usada para extrair informações de páginas web.
import requests
from bs4 import BeautifulSoup
url_alvo = "https://site-exemplo.com.br"
resposta_http = requests.get(url_alvo)
pagina_analisada = BeautifulSoup(resposta_http.text, "html.parser")
elemento_conteudo = pagina_analisada.find("div", class_="artigo")
if elemento_conteudo:
texto_extraido = elemento_conteudo.text
print(texto_extraido)