Spaces:
Sleeping
Sleeping
import gradio as gr | |
import os | |
import sys | |
import zipfile | |
import tempfile | |
from spacy2 import classifica_e_sposta_documenti | |
import shutil | |
import re # Aggiunto per rimuovere caratteri non consentiti nei nomi delle directory | |
# Aggiungi il percorso relativo di Poppler alla variabile di ambiente PATH | |
poppler_path = os.path.join(os.getcwd(), "poppler-24.01.0") | |
os.environ["PATH"] += os.pathsep + poppler_path | |
# Aggiungi il percorso relativo di Poppler alla variabile di ambiente LD_LIBRARY_PATH (solo per Linux) | |
if sys.platform.startswith("linux"): | |
os.environ["LD_LIBRARY_PATH"] = poppler_path | |
def rimuovi_caratteri_non_consentiti(nome): | |
# Utilizza una regular expression per rimuovere caratteri non consentiti | |
return re.sub(r'[\/:*?"<>|]', '', nome) | |
def classifica_e_sposta_documenti_wrapper(uploaded_files): | |
# Crea una cartella temporanea per archiviare i file caricati | |
temp_folder = tempfile.mkdtemp() | |
for uploaded_file in uploaded_files: | |
# Rimuovi caratteri non consentiti dal nome del file | |
file_name = rimuovi_caratteri_non_consentiti(uploaded_file.name) | |
file_path = os.path.join(temp_folder, file_name) | |
# Sposta il file temporaneo nella cartella temporanea | |
shutil.move(uploaded_file.name, file_path) | |
# Chiamata alla tua funzione spacy2.classifica_e_sposta_documenti con il nome del file | |
classifica_e_sposta_documenti(file_path, file_name) | |
# Creazione del file zip | |
zip_filename = 'processed_files.zip' | |
zip_filepath = os.path.join(temp_folder, zip_filename) | |
with zipfile.ZipFile(zip_filepath, 'w', zipfile.ZIP_DEFLATED) as zipf: | |
for root, dirs, files in os.walk(temp_folder): | |
for file in files: | |
zipf.write(os.path.join(root, file), | |
os.path.relpath(os.path.join(root, file), | |
os.path.join(temp_folder, '..'))) | |
return zip_filepath | |
def process_files(uploaded_files): | |
# Chiamata alla tua funzione spacy2.classifica_e_sposta_documenti | |
zip_filepath = classifica_e_sposta_documenti_wrapper(uploaded_files) | |
return "Elaborazione completata. Puoi scaricare i file elaborati [qui](" + zip_filepath + ")." | |
iface = gr.Interface(fn=process_files, inputs="files", outputs="text", live=True) | |
iface.launch() | |