我从thisfilename.py运行Matplotlib绘图的python代码。是否存在存储此文件名而没有文件路径的变量?因为我想将这个图保存为thisfilename.png而不是每次都输入这样的文件名吗?
if __name__ == '__main__':
...
plt.savefig('thisfilename.png')
我想将最后一行更改为
# pseudocode
plt.savefig(variable, '.png')
我测试了
plt.savefig(__file__, ".png")
保存的文件名有.py,文件路径和.png之前的空格我不想要
答案 0 :(得分:1)
import inspect
import matplotlib.pyplot as plt
import numpy as np
frame = inspect.currentframe()
path = inspect.getfile(frame)
fname = path.split('.')[0]
t = np.linspace(0,1, 1000)
plt.plot(t, np.sin(2*np.pi*t*4))
plt.savefig(fname + ".jpg")
答案 1 :(得分:1)
要保存与python文件同名的图形,请替换" .py" by" .png"并删除路径,我会使用:
plt.gcf().savefig(__file__.rstrip('.py').split('/')[-1] + ".png")
rstrip删除" .py"从文件字符串的右侧, 拆分方法将链条分开,每个" /"并且[-1]仅保留列表的最后一项 +可用于连接字符串
答案 2 :(得分:1)
您可以使用Python的splitext()
将__file__
分成两部分,然后添加所需的扩展名,如下所示:
import os
output_filename = os.path.splitext(__file__)[0] + '.png'
plt.savefig(output_filename)