criação de função copiar_ficheiros_para_destino()
This commit is contained in:
42
copier.py
42
copier.py
@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user