Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

631
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

0

Simplemente agregue "plt.close ()"

 plt.savefig("./figs/my_plot.jpg") plt.close()
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda