Spaces:
Sleeping
Sleeping
File size: 2,337 Bytes
d8daa2c 917eaaf d8daa2c ef9b5be d8daa2c a397ac0 482e966 917eaaf 482e966 d8daa2c 792112a ef9b5be 792112a 482e966 a397ac0 482e966 0cd3000 482e966 d8daa2c 792112a d8daa2c 792112a d8daa2c 792112a d8daa2c 792112a d8daa2c 792112a d8daa2c 3f51fb5 d8daa2c 792112a 482e966 71ba61a 792112a ef9b5be |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
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()
|