Módulos do Python para Tarefas Essenciais

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)

Tags: Python os sys time pickle

Publicado em 7-7 03:44