Organizar arquivos de log manualmente é uma tarefa tediosa e propensa a erros, especialmente quando o volume é grande. Automatizar esse processo com um script não apenas economiza tempo, mas também garante consistência e precisão na organização dos dados.
Primeiro, crie um arquivo chamado archive_logs.py e adicione o seguinte código:
import os
import shutil
from datetime import datetime
def archive_logs_by_date(source_folder):
for filename in os.listdir(source_folder):
if filename.endswith('.log'):
filepath = os.path.join(source_folder, filename)
try:
# Extrair data do nome do arquivo (ex: log_2023-10-05.log)
date_str = filename.split('_')[1].split('.')[0]
log_date = datetime.strptime(date_str, '%Y-%m-%d')
target_folder = os.path.join(source_folder, log_date.strftime('%Y-%m-%d'))
# Criar subpasta se não existir
if not os.path.exists(target_folder):
os.makedirs(target_folder)
# Mover arquivo para a subpasta
shutil.move(filepath, os.path.join(target_folder, filename))
print(f"Movido: {filename} -> {target_folder}")
except Exception as e:
print(f"Erro ao processar {filename}: {e}")
if __name__ == "__main__":
source_folder = "logs" # Altere para o caminho da sua pasta de logs
archive_logs_by_date(source_folder)
Abra o terminal, navegue até a pasta onde o script está salvo e execute:
python archive_logs.py
O script irá processar todos os arquivos .log na pasta especificada, extrair a data do nome do arquivo e movê-los para subpastas organizadas por data.
| Arquivo de Log (Entrada) | Subpasta (Saída) |
|---|---|
| log_2023-10-05.log | logs/2023-10-05/log_2023-10-05.log |
| log_2023-10-06.log | logs/2023-10-06/log_2023-10-06.log |
| log_2023-10-07.log | logs/2023-10-07/log_2023-10-07.log |
Com este script, você automatiza a organização de logs em subpastas por data em segundos, eliminando a necessidade de intervenção manual e reduzindo significativamente o risco de erros.