Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante   Click to listen highlighted text! Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante

Linguagem de Programação (Subsequente de Infraestrutura) – Aula 04

📘 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

Click to listen highlighted text!