Se corrigio el problema que mantenia el archivo entre sesiones implementando la session_state de streamlit y un mejor manejo de la cache
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,33 +1,48 @@
|
||||
import streamlit as st
|
||||
import os
|
||||
|
||||
|
||||
# @st.cache_data
|
||||
|
||||
|
||||
def import_file() -> str:
|
||||
List_of_files: list = []
|
||||
# Cargar el archivo pdf
|
||||
archivo = st.file_uploader(
|
||||
'Arrastra o ingresa tu archivo .pdf', type=['.pdf'])
|
||||
nombre_archivo: str = ''
|
||||
archivo = st.file_uploader("Arrastra o ingresa tu archivo .pdf", type=[".pdf"])
|
||||
nombre_archivo: str = ""
|
||||
# Verificar si se ha cargado un archivo
|
||||
if archivo is not None:
|
||||
|
||||
nombre_archivo = archivo.name
|
||||
# Abrir un archivo en modo escritura binaria ('wb') para guardar el archivo de audio
|
||||
|
||||
with open(f'documents/pdfs/{nombre_archivo}', 'wb') as new_file:
|
||||
# Agregamos el nombre a la lista de archvios para luego podr verificarlos
|
||||
List_of_files.append(nombre_archivo)
|
||||
st.success(
|
||||
f"El numero de archivos en la lista de archivos es de: {len(List_of_files)}"
|
||||
)
|
||||
|
||||
# Abrir un archivo en modo escritura binaria ('wb') para guardar el archivo de audio
|
||||
with open(f"documents/pdfs/{nombre_archivo}", "wb") as new_file:
|
||||
# Leer los datos del archivo cargado y escribirlos en el nuevo archivo
|
||||
new_file.write(archivo.read())
|
||||
|
||||
st.success(f"Se carga el archivo con nombre: {nombre_archivo}")
|
||||
|
||||
# Verificamos que en la lista solo haya un archivo, de lo contrario, limpiamos la session_state
|
||||
if (
|
||||
"archivo_anterior" in st.session_state
|
||||
and st.session_state.archivo_anterior != nombre_archivo
|
||||
):
|
||||
st.session_state.clear()
|
||||
|
||||
st.session_state.archivo_anterior = nombre_archivo
|
||||
|
||||
return nombre_archivo
|
||||
|
||||
|
||||
# Define la función para borrar el caché
|
||||
|
||||
|
||||
def clear_cache():
|
||||
cache_path = os.path.join(st.__path__[0], 'static', 'cache')
|
||||
cache_path = os.path.join(st.__path__[0], "static", "cache")
|
||||
for root, dirs, files in os.walk(cache_path):
|
||||
for file in files:
|
||||
os.remove(os.path.join(root, file))
|
||||
st.success('Cache limpio exitosamente.')
|
||||
|
||||
st.success("Cache limpio exitosamente.")
|
||||
|
||||
Reference in New Issue
Block a user