# copier.py # Funções para copiar ficheiros para o destino organizado from . import organizer from pathlib import Path import shutil def copiar_ficheiros_para_destino( lista_ficheiros: list[str], base_destino: str, categorizar_data: bool = False, usar_criacao: bool = False, formato_data: str = "%d-%m-%Y", ) -> None: """ Copiar cada ficheiro na lista para o directório base, seguindo as regras de categorização argumentos: lista_ficheiros (list[str]) -> lista com o caminho dos ficheiros a serem copiados base_destino (str) -> directorio base no qual serão criados os novos directórios com base nas regras de categorização categorizar_data (bool) -> flag para activar categorização por data (defeito: False) usar_criacao (bool) -> usar data de criação (defeito: False usar data de modificacao) formato_data (str) -> formato de data para nome dos subdirectórios (defeito: '%d-%m-%Y') retorna: None """ for ficheiro in lista_ficheiros: if not Path(ficheiro).is_file(): print(f"Aviso: '{ficheiro}' não existe ou não é um ficheiro.") continue categoria = organizer.categorizar_por_tipo(ficheiro) data = ( organizer.obter_data_ficheiro(ficheiro, usar_criacao) if categorizar_data else None ) pasta_destino = organizer.criar_pasta_destino( base_destino, categoria, data, formato_data ) destino_final = pasta_destino / Path(ficheiro).name shutil.copy2(ficheiro, destino_final)