criada função criar_pasta_destino()
This commit is contained in:
52
organizer.py
52
organizer.py
@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user