我正在使用popen模块打开一个控制台窗口,在该窗口中我调用一个程序,同时传递两个参数,然后在同一个控制台窗口中检索答案。 我试图做的是将stdout和popen的stderr重定向到一个文件然后读取文件并将此结果带到我的GUI中的文本区域。 问题是控制台窗口总是弹出但是为空,除非我关闭控制台窗口,否则结果不会显示在我的文本中。 我尝试添加一个startupinfo,但是没有用,我尝试将popen中的'-k'更改为'-c'(参见下面的代码),它也没有用。有什么帮助吗?
def call_interpreter():
que2.put_nowait(queue[0])
b=que2.get(block=True)
a=que1.get(block=True)
print "prameters are :" ,a ,b ,"\r\n"
c='python C:\\workspace\\Project_Interpreter\\Tool-v1.0.py -s %s %s'%(b,a)
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
ps=sp.Popen(['cmd','/C',c] , creationflags=0, startupinfo=startupinfo, stdout=PIPE, stderr=sp.STDOUT, stdin=PIPE)
texte01= ps.stdout.readlines()
print(str(texte01))
with open('logggg.txt','w') as txt:
txt.write(str(texte01) + ' ' )
chaine = "PASSED" # Texte à rechercher
fichier = open("logggg.txt","r")
for ligne in fichier:
if chaine in ligne:
tr=('congratulations your test has passed !!!')
else :
tr=('Sorry your test has failed !!!')
zone_texte.insert(END,tr)