caminho = "/c/Estudos/Corpus/"
print(manipular_caminho_sem_normalizar(caminho))
/c/Estudos/Corpus/
caminho = "/c/Investigacao/NotasCampo"
print(manipular_caminho_sem_normalizar(caminho))
/c/Investigacao/NotasCampo_FINAL
caminho = "/c//Estudos///Corpus/Texto_Entrevista"
print(manipular_caminho_sem_normalizar(caminho))
/c//Estudos///Corpus/Texto_Entrevista_FINAL
def manipular_caminho_sem_normalizar(caminho_original: str, sufixo="_FINAL"):
# Divide o caminho mantendo barras duplicadas
partes = caminho_original.split("/")
# Extrai o último elemento não vazio (nome do ficheiro)
nome_ficheiro = partes.pop()
while nome_ficheiro == "" and partes:
nome_ficheiro = partes.pop()
# Se não houver ficheiro, devolve o caminho original
if nome_ficheiro == "":
return caminho_original
# Divide o nome do ficheiro por pontos
segmentos = nome_ficheiro.split(".")
# Detecta se tem extensão
tem_extensao = len(segmentos) > 1
if tem_extensao:
nome_sem_ext = ".".join(segmentos[:-1])
extensao = "." + segmentos[-1]
else:
nome_sem_ext = nome_ficheiro
extensao = "" # ficheiro académico sem extensão
# Constrói o novo nome
novo_nome = f"{nome_sem_ext}{sufixo}{extensao}"
# Reconstrói o caminho preservando barras duplicadas
partes.append(novo_nome)
return "/".join(partes)






No comments:
Post a Comment