popen模块中的控制台窗口无法正常工作

时间:2014-01-28 15:49:32

标签: python windows console popen

我正在使用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)

0 个答案:

没有答案