pippobertin's picture
Update app.py
917eaaf verified
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()