我有一个wxPython脚本,它在单击按钮后执行一个进程并在wx.StaticText中显示进程输出。 问题是当我想重新执行该过程时,我点击按钮并显示旧结果(第一个过程的输出);这个旧结果仍然显示在窗口上,而我添加了一条通常会隐藏它的指令:
以下是我的代码行:
def OnButton(self, e):
if self.res=="udpscan":
self.resultat1.SetLabel("")
ipad=self.ipadd.GetValue()
fromm=self.fr.GetValue()
too=self.to.GetValue()
ifc=self.intf.GetValue()
if len(ipad) <1 or len(too) < 1 or len(fromm) <1 or len(ifc) < 1:
wx.MessageBox('Please enter missing values','error',wx.OK)
else:
sp=subprocess.Popen(['python','udp_portscan.py',ifc,ipad,fromm,too],stdout=subprocess.PIPE)
text=sp.stdout.readlines()
text="".join(text)
self.resultat1.SetLabel(text)
我试图添加其他信息以隐藏它但同样的问题。 你能帮我吗。谢谢
答案 0 :(得分:0)
sp似乎将所有先前的输出存储在sp.stdout中。
可能有办法使用.kill()来清除它:
sp=subprocess.Popen(['python','udp_portscan.py',ifc,ipad,fromm,too],stdout=subprocess.PIPE)
text=sp.stdout.readlines()
sp.kill()