criada função criar_pasta_destino()

This commit is contained in:
2025-04-17 11:36:53 +01:00
parent c4a8ab880a
commit 0fc33638ef

View File

@ -8,31 +8,63 @@ import time
def categorizar_por_tipo(ficheiro: str) -> str: def categorizar_por_tipo(ficheiro: str) -> str:
""" """
Devolve o tipo de ficheiro (imagem, documento, vídeo, etc) com base na extensão. Devolve o tipo de ficheiro (imagem, documento, vídeo, etc) com base na extensão.
argumentos:
ficheiro (str) -> caminho do ficheiro
retorna:
str -> tipo de ficheiro
""" """
# TODO: extensões configuraveis externamente pelo utilizador # TODO: extensões configuraveis externamente pelo utilizador
extensao = Path(ficheiro).suffix.lower() extensao = Path(ficheiro).suffix.lower()
if extensao in ['.jpeg', '.jpg', '.bmp', '.cr2', '.raw']: if extensao in [".jpeg", ".jpg", ".bmp", ".cr2", ".raw"]:
return 'imagem' return "imagem"
elif extensao in ['.pdf', '.doc', '.docx', '.xls', '.xlsx']: elif extensao in [".pdf", ".doc", ".docx", ".xls", ".xlsx"]:
return 'documento' return "documento"
elif extensao in ['.mp4', '.mpeg', '.mov']: elif extensao in [".mp4", ".mpeg", ".mov"]:
return 'video' return "video"
else: else:
return 'outros' return "outros"
def obter_data_ficheiro(ficheiro: str, usar_criacao: bool = False) -> datetime: def obter_data_ficheiro(ficheiro: str, usar_criacao: bool = False) -> datetime:
""" """
Devolve a data de modificação ou criação do ficheiro. Devolve a data de modificação ou criação do ficheiro.
argumentos:
ficheiro (str) -> caminho do ficheiro
usar_criacao (bool) -> retornar data de criação de ficheiro (defeito: False)
retorna:
datetime -> data de modificação ou criação do ficheiro
""" """
stats_ficheiro = Path(ficheiro).stat() stats_ficheiro = Path(ficheiro).stat()
timestamp = stats_ficheiro.st_ctime if usar_criacao else stats_ficheiro.st_mtime timestamp = stats_ficheiro.st_ctime if usar_criacao else stats_ficheiro.st_mtime
return datetime.fromtimestamp(timestamp) return datetime.fromtimestamp(timestamp)
def criar_pasta_destino(base_destino, categoria, data=None): def criar_pasta_destino(
base_destino: str,
categoria: str,
data: datetime | None = None,
formato_data: str = "%d-%m-%Y",
) -> Path:
""" """
Cria a pasta de destino apropriada, se não existir. Cria a pasta de destino apropriada, se não existir.
"""
pass argumentos:
base_destino (str) -> directorio raiz para criar novo directorio
categoria (str) -> nome do novo directorio a criar
data (datetime | None) -> nome para subdirectorio para categorizar por data (defeito: None, não criar subdirectorio de data)
formato_data (str) -> formato da data ppara o nome da pasta (defeito: '%d-%m-%Y')
retorna:
Path -> caminho completo para o novo directorio criado
"""
if isinstance(data, datetime):
data_directorio = data.strftime(formato_data)
else:
data_directorio = ""
caminho_novo_directorio = Path(base_destino) / categoria / data_directorio
caminho_novo_directorio.mkdir(parents=True, exist_ok=True)
return caminho_novo_directorio