自动关闭Python脚本的输出窗口
我写了一个小脚本,用来批量绘制一些数据。这个脚本必须有一个窗口显示新创建的图表才能运行。如果这个窗口不关闭,脚本就会停下来,等你手动关闭窗口后,脚本才会继续运行。所以我想问的是:
有没有办法在python脚本中自动关闭输出窗口呢?
这是我的脚本:
import pynbody
import numpy as np
import pynbody.plot.sph as sph
f = open('files.txt', 'r')
for line in f:
line = line[0:-1]
s = pynbody.load(line)
sph.image(s.gas,qty="temp",width=16, filename=line[0:-6]+line[-5:len(line)], units='K', cmap="YlOrRd", ret_im=False , approximate_fast=False)
#At the end of the loop I would like to close the output window so the script
#will continue to run
pynbody.plot.sph这个包似乎应该可以在sph.image函数调用中控制输出窗口的开关,但我试过所有可能的方法,现在只能求助于这个办法来让脚本继续运行。
3 个回答
0
在循环里加一行 pynbody.plot.plt.close()。
定义:pynbody.plot.plt.close(*args) 文档说明:关闭一个图形窗口。
close()
这个命令单独使用时,会关闭当前的图形。
close(h)
这里的 h 是一个Figure
实例,这个命令会关闭那个特定的图形。
close(num)
这个命令会关闭编号为 num 的图形。
close(name)
这里的 name 是一个字符串,这个命令会关闭带有那个标签的图形。
close('all')
这个命令会关闭所有的图形窗口。
0
根据文档,你应该把noplot这个参数设置为True。
1
我通过这个 链接 找到了答案。
简单来说,答案是这样的:
plt.show(block=False) # block = False allows automatic closing of the image
# the following command will close the graph in 3 seconds
time.sleep(3)
plt.close()