criação de função copiar_ficheiros_para_destino()

This commit is contained in:
2025-04-17 12:00:54 +01:00
parent 0fc33638ef
commit b3357f0d52

View File

@ -2,9 +2,51 @@
# Funções para copiar ficheiros para o destino organizado # Funções para copiar ficheiros para o destino organizado
from pathlib import Path
import organizer
import shutil
def copiar_ficheiro(origem, destino): def copiar_ficheiro(origem, destino):
""" """
Copia o ficheiro da origem para o destino. Copia o ficheiro da origem para o destino.
Deve lidar com conflitos de nomes (duplicados). Deve lidar com conflitos de nomes (duplicados).
""" """
pass pass
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)