Neste post, vou compartilhar um script em Python 3.9 que criei para gerar uma lista de arquivos com o último dia de cada mês entre os anos de 2021 e 2024, no formato especificado:
ANT_YYYYMMDD_000000017.OUT
. Esse tipo de geração automática de arquivos pode ser útil para aplicações que precisam processar dados mensalmente ou em sistemas que trabalham com arquivos por período.O script considera anos bissextos, como 2024, onde fevereiro possui 29 dias, garantindo que o último dia do mês seja sempre calculado corretamente.
Funcionamento do Script
- Utilizamos o módulo
datetime
para calcular o último dia de cada mês. - A lista gerada segue o formato
ANT_YYYYMMDD_000000017.OUT
, ondeYYYYMMDD
é substituído pela data correta. - O intervalo de datas vai de janeiro de 2021 até dezembro de 2024, cobrindo quatro anos completos.
Se você precisa de uma solução que facilite o controle de datas ou arquivos mensais, este script será útil!
O Código
Aqui está o código que gera a lista:
"
from datetime import datetime, timedelta
def last_day_of_month(year, month):
"""Retorna o último dia do mês"""
if month == 12:
return datetime(year, month, 31)
return datetime(year, month + 1, 1) - timedelta(days=1)
def generate_file_list(start_year, end_year):
"""Gera a lista com o último dia de cada mês entre start_year e end_year"""
file_list = []
for year in range(start_year, end_year + 1):
for month in range(1, 13):
last_day = last_day_of_month(year, month)
# Formatar conforme a máscara solicitada
file_name = f"INICIO_{last_day.strftime('%Y%m%d')}_FIM.OUT"
file_list.append(file_name)
return file_list
# Período: de 2021 a 2024
start_year = 2021
end_year = 2024
# Gera a lista de arquivos
file_list = generate_file_list(start_year, end_year)
# Imprime a lista
for file_name in file_list:
print(file_name) "
Conclusão
Esse script é uma solução simples e eficaz para quem precisa gerar listas de arquivos baseadas em datas. Se você trabalha com automação de processos, ele pode economizar tempo e evitar erros manuais. Fique à vontade para modificar o código conforme suas necessidades!
Comentários
Postar um comentário