Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

623
Vistas
Matplotlib Savefig NO sobrescribirá archivos antiguos

Esto parece que debe ser un problema de permisos en mi máquina. Después de una actualización de sistemas en Windows 10, cuando ejecuto:

 import matplotlib.pyplot as plt #make figure plt.plot([1,2,3,4]) plt.ylabel('some numbers') #save plt.savefig("./figs/my_plot.jpg")

Creará la figura la primera vez que se ejecute el código. Si realizo un cambio en el código (p. ej., cambio de etiqueta) y luego vuelvo a ejecutar, el gráfico que se muestra en un Jupyter Notebook se actualiza, pero el archivo guardado en mi máquina no. Este es un problema nuevo a partir de hoy, después de que se eliminó una actualización del sistema, por lo que parece ser un posible culpable. ¿Alguna idea para solucionar este problema, además de crear un nuevo nombre de archivo cada vez que se realiza un cambio?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

TLDR: Las fotos se estaban sobrescribiendo, pero la fecha se mantuvo igual que el archivo original, debido a una peculiaridad de las ventanas cuando una carpeta tiene muchas fotos.

La respuesta de Jon del 2/10/2015 me funcionó. https://superuser.com/questions/147525/cuál-es-la-columna-de-fecha-en-windows-7-explorer-it-matches-no-date-column-from/335901#335901

Básicamente, Windows detecta muchas imágenes en una carpeta y "optimiza" dicha carpeta para las imágenes. Esto significa que la columna que se muestra es Fecha en lugar de Fecha de modificación como lo sería para una carpeta "optimizada" para documentos. La fecha toma la fecha anterior de la fecha de creación y la fecha de modificación. Como la Fecha de creación no cambia cuando matplotlib .savefig sobrescribe un archivo, la columna Fecha nunca cambia.

Para resolver este problema, personalicé la carpeta para documentos. Para hacer esto, seleccione la carpeta y abra la ventana de propiedades. Navegue a la pestaña de personalización y luego seleccione los documentos en "optimizar esta carpeta para".

over 4 years ago · Santiago Trujillo Denunciar

0

Puede ser simple y estúpido, pero solo haré lo siguiente:

 import os import matplotlib.pyplot as plt #make figure plt.plot([1,2,3,4]) plt.ylabel('some numbers') #save strFile = "./figs/my_plot.jpg" if os.path.isfile(strFile): os.remove(strFile) # Opt.: os.system("rm "+strFile) plt.savefig(strFile)

Puede ser bastante difícil usar directamente "rm" como línea de comando del sistema, pero puede usar cualquier otra opción similar a esa.

Pero siendo honesto, es extraño que matplotlib no sobrescriba el archivo.

EDITAR

Veo que está usando Windows, por lo que puede usar "del" como línea de comando de eliminación en lugar de "rm" para Unix.

over 4 years ago · Santiago Trujillo Denunciar

0

Simplemente agregue "plt.close ()"

 plt.savefig("./figs/my_plot.jpg") plt.close()
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda