ali*_*ice 5 python operating-system matplotlib
我只是用
plt.savefig(filename+'.png', format='png')
Run Code Online (Sandbox Code Playgroud)
保存我的情节.但是filename.png当我创建一个新版本(使用不同的颜色代码等)时,我想保留旧版本,而不必总是提出新的文件名.
由于我不是一次性做到这一点,这对我没有帮助.我发现这是关于如何防止Python覆盖文件,但这是为了os.有没有办法做到这一点savefig?
最后,我想Python来检查是否filename.png存在且仅当,保存新的数字作为filename1.png,filename2.png等等.
小智 6
你必须自己提供一些独特的名字:matplotlib不会为你做.matplotlib也不会检查您当前的文件名是否存在.我会沿着以下几行写一个循环:
(未经测试的代码)
import os
i = 0
while True:
i += 1
newname = '{}{:d}.png'.format(filename, i)
if os.path.exists(newname):
continue
plt.savefig(newname)
break
Run Code Online (Sandbox Code Playgroud)
注意:如果扩展名已经存在.png,则无需将格式设置为png显式.
编辑
我意识到上面的内容过于冗长,只是因为我想避免两次进行字符串格式化.以下可能更符合逻辑:
import os
i = 0
while os.path.exists('{}{:d}.png'.format(filename, i)):
i += 1
plt.savefig('{}{:d}.png'.format(filename, i))
Run Code Online (Sandbox Code Playgroud)