自动关闭Python脚本的输出窗口

2 投票
3 回答
2693 浏览
提问于 2025-04-18 06:18

我写了一个小脚本,用来批量绘制一些数据。这个脚本必须有一个窗口显示新创建的图表才能运行。如果这个窗口不关闭,脚本就会停下来,等你手动关闭窗口后,脚本才会继续运行。所以我想问的是:

有没有办法在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

我通过这个 链接 找到了答案。

在matplotlib中如何自动查看然后关闭图形?

简单来说,答案是这样的:

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()

撰写回答