📘 Módulo IV – Manipulação de Arquivos e Automação de Tarefas
🧩 Semana 9 – Leitura e Escrita de Arquivos
🧪 Aula 17 – Abertura de arquivos (open)
🎯 Objetivos
-
Trabalhar com arquivos texto
-
Compreender modos de abertura
📚 Conteúdo
| Modo | Descrição |
|---|---|
"r" |
leitura |
"w" |
escrita (sobrescreve) |
"a" |
append (adiciona) |
💻 Exemplo Didático
# Criando um arquivo
arquivo = open("teste.txt", "w")
arquivo.write("Primeira linha\n")
arquivo.close()
🧠 Explicação
-
open()cria ou abre arquivo -
write()grava conteúdo -
close()libera recurso
🔍 Boa prática (context manager)
with open("teste.txt", "r") as arquivo:
conteudo = arquivo.read()
print(conteudo)
✔ Evita esquecer o close()
🧪 Aula 18 – Processamento de logs
💻 Exemplo Prático (Filtro de Logs CRITICAL)
📌 Problema:
Extrair apenas eventos críticos
# Arquivo de entrada
entrada = "servidor.log"
saida = "criticos.log"
with open(entrada, "r") as log:
linhas = log.readlines()
with open(saida, "w") as criticos:
for linha in linhas:
if "CRITICAL" in linha:
criticos.write(linha)
print("Processamento concluído.")
🧠 Explicação
-
readlines()→ lista de linhas -
Filtro simples com operador
in -
Geração de novo arquivo
✅ Validação
Entrada (servidor.log):
INFO Sistema iniciado
CRITICAL Falha no disco
WARNING Uso alto de CPU
CRITICAL Memória insuficiente
Saída (criticos.log):
CRITICAL Falha no disco
CRITICAL Memória insuficiente
🧩 Semana 10 – Organização de Arquivos
🧪 Aula 19 – Módulos os e shutil
🎯 Objetivos
-
Interagir com sistema operacional
-
Listar e manipular arquivos
💻 Exemplo
import os
# Listar arquivos
arquivos = os.listdir(".")
for arquivo in arquivos:
print(arquivo)
🧠 Explicação
-
os.listdir()→ lista diretório atual -
Base para automação de arquivos
🧪 Aula 20 – Operações em massa
💻 Exemplo Prático (Arquivamento de logs antigos)
📌 Problema:
Mover logs com mais de 30 dias
import os
import shutil
import time
# Diretórios
origem = "./logs"
destino = "./arquivo_logs"
# Criar pasta destino se não existir
os.makedirs(destino, exist_ok=True)
# Tempo atual
agora = time.time()
# Loop pelos arquivos
for arquivo in os.listdir(origem):
caminho = os.path.join(origem, arquivo)
if os.path.isfile(caminho):
# Tempo de modificação
tempo_arquivo = os.path.getmtime(caminho)
# Diferença em dias
dias = (agora - tempo_arquivo) / (60 * 60 * 24)
if dias > 30:
print(f"Movendo: {arquivo}")
shutil.move(caminho, destino)
print("Organização concluída.")
🧠 Explicação
-
getmtime()→ última modificação -
Cálculo em dias
-
shutil.move()→ movimentação
⚠ Validação
-
Testar com arquivos reais
-
Garantir permissões adequadas
🧩 Semana 11 – Automação Avançada
🧪 Aula 21 – CSV e JSON
🎯 Objetivos
-
Trabalhar com dados estruturados
-
Registrar informações de forma organizada
💻 Exemplo CSV
import csv
with open("dados.csv", "w", newline="") as arquivo:
writer = csv.writer(arquivo)
writer.writerow(["Servidor", "Status"])
writer.writerow(["web01", "OK"])
💻 Exemplo JSON
import json
dados = {
"servidor": "web01",
"status": "OK"
}
with open("dados.json", "w") as arquivo:
json.dump(dados, arquivo, indent=4)
🧠 Explicação
-
CSV → formato tabular
-
JSON → formato estruturado (semelhante a dicionário)
🧪 Aula 22 – Monitoramento com tempo
🎯 Objetivos
-
Criar scripts contínuos
-
Simular monitoramento real
💻 Exemplo Prático (Monitoramento de Gateway)
📌 Problema:
Verificar conectividade a cada 5 minutos
import os
import time
import csv
from datetime import datetime
gateway = "8.8.8.8"
while True:
status = os.system(f"ping -c 1 {gateway} > /dev/null 2>&1")
resultado = "ONLINE" if status == 0 else "OFFLINE"
agora = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"{agora} - Gateway {resultado}")
# Registrar em CSV
with open("monitoramento.csv", "a", newline="") as arquivo:
writer = csv.writer(arquivo)
writer.writerow([agora, resultado])
# Espera 5 minutos
time.sleep(300)
🧠 Explicação
-
Loop infinito → monitoramento contínuo
-
time.sleep(300)→ pausa de 5 min -
Registro persistente em CSV
⚠ Validação importante
-
Ajustar ping para Windows (
-n 1) -
Interromper com
Ctrl + C
📊 Considerações Pedagógicas
✔ Progressão cognitiva
| Semana | Conceito | Aplicação |
|---|---|---|
| 9 | Arquivos | Logs |
| 10 | Sistema de arquivos | Organização |
| 11 | Automação | Monitoramento |
✔ Competências desenvolvidas
-
Manipulação de arquivos reais
-
Automação de tarefas repetitivas
-
Persistência de dados
-
Monitoramento básico
✔ Aplicação profissional
-
Administração de logs
-
Backup e arquivamento
-
Monitoramento de rede
-
Base para DevOps e SRE
✔ Fundamentação
-
Manipulação de arquivos →
-
Automação prática →
Fim da aula 04
