从python脚本自动关闭输出窗口

从python脚本自动关闭输出窗口,python,window,Python,Window,我已经写了一个小脚本来批量绘制一些数据。如果没有显示新创建打印打开的窗口,则无法运行此脚本。它停止运行,直到手动关闭窗口,然后脚本继续运行。因此,我的问题如下: 有没有办法在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 =

我已经写了一个小脚本来批量绘制一些数据。如果没有显示新创建打印打开的窗口,则无法运行此脚本。它停止运行,直到手动关闭窗口,然后脚本继续运行。因此,我的问题如下:

有没有办法在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函数调用中打开和关闭输出窗口,但我已经用尽了所有可能的方法,现在正在使用它来运行脚本。

根据,您应该将noplot参数设置为True

添加一行pynbody.plt.close()到for循环

定义:pynbody.plot.plt.close(*args)Docstring:关闭图形 窗户

close()
自身关闭当前图形

close(h)
其中h是一个:类:
实例,关闭该类 身材

close(num)
关闭数字num

close(name)
如果name是字符串,则用该字符串关闭图形 标签

close('all')
关闭所有图形窗口


我用这个找到了答案

基本上,答案如下:

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

文章结尾的小广告是为了澄清我已经用尽了函数给我的所有选项。我已经阅读了文档并尝试设置noplot=True以及ret_im标志。你在运行什么操作系统?linux(Mageia KDE 4.11)好的,我不能在细节上帮你,但是在windows上,窗口应该显示为一个单独的进程。如果你能找到PID,你可以用os.kill()杀死它。我需要杀死大约100个windows:PRight,但是如果你的脚本能找到PID,你就没有额外的工作了