39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
# organizer.py
|
|
# Funções para categorizar ficheiros e criar estrutura de destino
|
|
from pathlib import Path
|
|
from datetime import date, datetime
|
|
import time
|
|
|
|
|
|
def categorizar_por_tipo(ficheiro: str) -> str:
|
|
"""
|
|
Devolve o tipo de ficheiro (imagem, documento, vídeo, etc) com base na extensão.
|
|
"""
|
|
# TODO: extensões configuraveis externamente pelo utilizador
|
|
extensao = Path(ficheiro).suffix.lower()
|
|
if extensao in ['.jpeg', '.jpg', '.bmp', '.cr2', '.raw']:
|
|
return 'imagem'
|
|
elif extensao in ['.pdf', '.doc', '.docx', '.xls', '.xlsx']:
|
|
return 'documento'
|
|
elif extensao in ['.mp4', '.mpeg', '.mov']:
|
|
return 'video'
|
|
else:
|
|
return 'outros'
|
|
|
|
|
|
def obter_data_ficheiro(ficheiro: str, usar_criacao: bool = False) -> datetime:
|
|
"""
|
|
Devolve a data de modificação ou criação do ficheiro.
|
|
"""
|
|
stats_ficheiro = Path(ficheiro).stat()
|
|
timestamp = stats_ficheiro.st_ctime if usar_criacao else stats_ficheiro.st_mtime
|
|
return datetime.fromtimestamp(timestamp)
|
|
|
|
|
|
def criar_pasta_destino(base_destino, categoria, data=None):
|
|
"""
|
|
Cria a pasta de destino apropriada, se não existir.
|
|
"""
|
|
|
|
pass
|