Saltar al contenido

¿Cómo puedo verificar que un archivo esté cerrado o no en python?

No olvides que en la informática un error casi siempre tiene diferentes resoluciones, así que nosotros aquí te compartiremos lo más óptimo y eficiente.

Solución:

Puede obtener una lista de todos los archivos abiertos usando un módulo independiente de la plataforma psutil:

import psutil
open_files = [x.path for x in psutil.Process().open_files()]

Si file_name está en la lista, entonces está abierto, posiblemente más de una vez.

Una forma es profundizar en el generator objeto mismo para encontrar la referencia al TextIOWrapper instancia devuelta por open; esa instancia tiene un closed attribute.

csv_gen.gi_frame.f_locals['.0'].closed

Una vez que el generador está agotado, gi_frame se convertirá Nonemomento en el que el cierre o no del expediente depende de si el TextIOWrapper ha sido basura-recogido todavía.

(Esta es una manera terrible de hacer esto, pero pasé 10 minutos investigando el objeto, así que quería compartirlo :))

Reseñas y puntuaciones del artículo

Nos puedes secundar nuestra publicación exponiendo un comentario y valorándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *