seabeck.pages.dev

Como criar um script para converter datas em nome de arquivos?

Renomear arquivos com datas no formato correto é uma tarefa repetitiva e propensa a erros manuais. Um script automatizado elimina esses problemas, padronizando os nomes e economizando tempo, especialmente quando se lida com grandes volumes de arquivos.

Pré-requisitos

Script Python para renomear arquivos com datas

Este script utiliza a biblioteca os para acessar o sistema de arquivos e a biblioteca datetime para formatar datas. Ele renomeia todos os arquivos em um diretório especificado, substituindo datas no formato "YYYY-MM-DD" por "DD-MM-YYYY".

import os
from datetime import datetime

def rename_files_with_dates(directory):
    for filename in os.listdir(directory):
        # Verificar se o arquivo contém uma data no formato YYYY-MM-DD
        if '-' in filename:
            try:
                # Extrair a parte da data
                date_part = filename.split('.')[0]  # assumindo que a data está antes do ponto
                date_obj = datetime.strptime(date_part, '%Y-%m-%d')
                new_date_part = date_obj.strftime('%d-%m-%Y')
                new_filename = filename.replace(date_part, new_date_part)
                os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))
                print(f"Renomeado: {filename} -> {new_filename}")
            except ValueError:
                # Se a data não estiver no formato esperado, pular o arquivo
                continue

# Exemplo de uso
directory_path = '/caminho/para/seu/diretorio'
rename_files_with_dates(directory_path)

Script Bash para sistemas Unix/Linux

Para usuários de sistemas Unix/Linux, um script Bash pode ser uma alternativa rápida e eficiente. Este script usa o comando rename para substituir datas no formato "YYYY-MM-DD" por "DD-MM-YYYY".

#!/bin/bash

# Diretório onde os arquivos estão localizados
directory="/caminho/para/seu/diretorio"

# Loop para renomear arquivos
for file in "$directory"/*; do
    if [[ -f "$file" ]]; then
        # Extrair o nome do arquivo
        filename=$(basename "$file")
        # Verificar se o arquivo contém uma data no formato YYYY-MM-DD
        if [[ "$filename" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2} ]]; then
            # Extrair a data
            date_part="${filename:0:10}"
            # Converter a data para o formato DD-MM-YYYY
            new_date_part="${date_part:8:2}-${date_part:5:2}-${date_part:0:4}"
            # Renomear o arquivo
            new_filename="${filename/$date_part/$new_date_part}"
            mv "$file" "$directory/$new_filename"
            echo "Renomeado: $filename -> $new_filename"
        fi
    fi
done

Exemplo Prático

Nome do Arquivo Original Nome do Arquivo Renomeado
2023-10-05_relatorio.pdf 05-10-2023_relatorio.pdf
2022-12-31_dados.xlsx 31-12-2022_dados.xlsx
2021-01-15_notas.txt 15-01-2021_notas.txt

Conclusão

Com estes scripts, você automatiza o processo de renomear arquivos com datas, garantindo consistência e economizando tempo. A escolha entre Python e Bash depende do seu ambiente e preferência, mas ambos os métodos são eficazes para padronizar nomes de arquivos de forma rápida e confiável.