Matplotlib Savefig 不会覆盖旧文件

2024-02-04

这看起来一定是我的机器上的权限问题。在 Windows 10 上进行系统更新后,当我运行:

import matplotlib.pyplot as plt
#make figure
plt.plot([1,2,3,4])
plt.ylabel('some numbers')

#save
plt.savefig("./figs/my_plot.jpg")

它将在代码第一次运行时创建图形。如果我对代码进行更改(例如更改标签)然后重新运行,则 Jupyter Notebook 中显示的绘图会更新,但保存在我的计算机上的文件不会更新!这是系统更新推出后今天出现的新问题,因此这似乎是罪魁祸首。除了每次进行更改时创建新文件名之外,我还有解决此问题的见解吗?


TLDR:照片被覆盖,但日期与原始文件保持相同,这是由于当文件夹中有大量照片时窗口的怪癖。

乔恩 2015 年 10 月 2 日的回答对我有用。https://superuser.com/questions/147525/what-is-the-date-column-in-windows-7-explorer-it-matches-no-date-column-from/335901#335901 https://superuser.com/questions/147525/what-is-the-date-column-in-windows-7-explorer-it-matches-no-date-column-from/335901#335901

基本上,Windows 会检测文件夹中的大量图片并“优化”所述文件夹中的图片。这意味着显示的列是日期而不是修改日期,因为它是针对文档“优化”的文件夹。日期采用创建日期和修改日期中较早的一个。由于当 matplotlib .savefig 覆盖文件时创建日期不会改变,因此日期列永远不会改变。

为了解决这个问题,我自定义了文档文件夹。为此,请选择文件夹并打开属性窗口。导航到“自定义”选项卡,然后选择“优化此文件夹”下的文档。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matplotlib Savefig 不会覆盖旧文件 的相关文章

随机推荐