Как вы говорите, очевидное решение состоит в том, чтобы включить сохранение в оператор if
for filename in filenames:
plt.figure()
if os.path.exists(filename):
x, y = np.loadtxt(filename, unpack=True)
plt.plot(x, y)
plt.savefig(filename + '.png') # <-- indentation here
plt.close()
Иначе, это будет зависеть от того, что на самом деле означает «пустой».Если фигура не содержит осей,
for filename in filenames:
fig = plt.figure()
if os.path.exists(filename):
x, y = np.loadtxt(filename, unpack=True)
plt.plot(x, y)
if len(fig.axes) > 0:
plt.savefig(filename + '.png')
plt.close()
Однако это как-то обходные пути.Я думаю, что вы действительно хотите выполнить логический шаг самостоятельно.
for filename in filenames:
plt.figure()
save_this = False
if os.path.exists(filename):
x, y = np.loadtxt(filename, unpack=True)
plt.plot(x, y)
save_this = True
if save_this:
plt.savefig(filename + '.png')
plt.close()