Spaces:
Sleeping
Sleeping
import os | |
import re | |
import shutil | |
from typing import List | |
from constantes import AGENTS_FILES_PATH | |
class File_Util: | |
""" | |
Manipulação de diretórios e arquivos | |
""" | |
def create_or_clear_output_directory(output_dir: str): | |
""" | |
Cria o diretório de saída se não existir. | |
""" | |
if not os.path.exists(output_dir): | |
os.makedirs(output_dir) | |
print(f"Diretório criado: {output_dir}") | |
else: | |
# Limpa todos os arquivos e subdiretórios | |
for filename in os.listdir(output_dir): | |
file_path = os.path.join(output_dir, filename) | |
try: | |
if os.path.isfile(file_path) or os.path.islink(file_path): | |
os.unlink(file_path) | |
elif os.path.isdir(file_path): | |
shutil.rmtree(file_path) | |
except Exception as e: | |
print(f"Erro ao excluir {file_path}: {e}") | |
print(f"Diretório limpo: {output_dir}") | |
def retirar_sufixo_codec_arquivo(directory: str) -> List[str]: | |
""" | |
Os arquivos de audio e video quando baixados ficam com o codec | |
embutido no nome, dificultando identificar o nome do arquivo a ser | |
processado. O objetivo é remover o sufixo do nome do arquivo. | |
""" | |
return_list = [] | |
for filename in os.listdir(directory): | |
# Procura padrão como ".f123" antes da extensão | |
new_filename = re.sub(r'\.f\d{3}(?=\.\w+$)', '', filename) | |
if new_filename != filename: | |
old_path = os.path.join(directory, filename) | |
new_path = os.path.join(directory, new_filename) | |
os.rename(old_path, new_path) | |
print(f"Renomeado: {filename} → {new_filename}") | |
return_list.append(new_filename) | |
return return_list | |
def tratar_arquivo_local(caminho_entrada: str) -> str: | |
""" | |
Verifica se o arquivo existe no caminho informado. | |
Se não existir, adiciona o path padrão do sistema. | |
Parâmetros: | |
- caminho_entrada (str): Caminho completo ou nome do arquivo. | |
Retorna: | |
- str: Caminho válido para o arquivo, ou None se não encontrado. | |
""" | |
# Verifica se o arquivo já existe no caminho informado | |
if os.path.isfile(caminho_entrada): | |
return caminho_entrada | |
# Tenta procurar no diretório padrão, se fornecido | |
novo_caminho = os.path.join(AGENTS_FILES_PATH, os.path.basename(caminho_entrada)) | |
if os.path.isfile(novo_caminho): | |
return novo_caminho | |
# Arquivo não encontrado | |
return None |