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á None
momento 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.