Rodrigo Maciel
← Todos os artigos

Tecnologia / RODRIGO MACIEL

Uma automação começa por mostrar o que vai fazer

Um pequeno exemplo em Python para preparar trabalho repetitivo sem alterar os ficheiros.

Antes de automatizar uma tarefa, torna o seu alcance visível. Uma lista de ficheiros é mais fácil de conferir do que uma operação que já os moveu ou alterou.

O exemplo seguinte recebe uma pasta e mostra os ficheiros com extensão .wav em minúsculas. Não move, renomeia ou elimina ficheiros. Precisa de Python 3.

Um primeiro passo verificável

from pathlib import Path
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("pasta", type=Path)
args = parser.parse_args()
root = args.pasta.resolve()
if not root.is_dir():
    parser.error("A pasta indicada não existe")

for ficheiro in sorted(root.glob("*.wav")):
    if ficheiro.is_file():
        print(ficheiro.name)

Guarda o código como listar_audio.py e executa:

python3 listar_audio.py /caminho/da/pasta

O caminho é um exemplo: substitui-o pela pasta que queres analisar. A procura não percorre subpastas. Se também precisares de extensões em maiúsculas, define essa regra antes de alargar a seleção.

Confere o resultado antes de avançar

Prepara uma pasta de ensaio com dois ficheiros .wav e um .txt. Confirma que a lista contém apenas os dois ficheiros esperados. Experimenta também uma pasta vazia e um caminho inexistente.

Este pequeno teste esclarece a regra. Só depois faz sentido acrescentar uma ação, como exportar um relatório. Quando uma futura ação alterar dados, acrescenta uma simulação, uma verificação do destino e uma forma de recuperar o estado anterior.

Mantém a tarefa pequena

Uma rotina útil tem um objetivo claro, entradas explícitas e um resultado que se consegue conferir. Se a mesma execução começa a organizar projetos, converter áudio e apagar versões antigas, separa as responsabilidades.

O objetivo não é escrever muito código. É retirar uma repetição sem perder o controlo sobre os dados.

Referências

Python — argparse e Python — pathlib.

← Todos os artigos