2014-01-27 82 views
0

我正在使用Tkinter創建一個將腳本連接到解釋器的接口,這個腳本負責運行這些腳本。我正在使用subprocess模塊​​popen(),它工作正常,但運行的結果顯示在控制檯窗口中。我嘗試將結果重定向到界面中的文本區域,但控制檯窗口仍然彈出,但這次它是空的,只有在關閉控制檯窗口後,結果才顯示在此文本區域中。 有人可以幫我弄清楚我做錯了什麼? 預先感謝您。python腳本只在關閉控制檯時才起作用

def interpreter1(): 
     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) 
     ps=sp.Popen(['cmd','/K',c] , creationflags=0, shell=False, stdout=PIPE,stderr=sp.STDOUT,stdin=PIPE) 
     texte01= ps.stdout.readlines() 

回答

0

您可以使用subprocess.STARTUPINFO類從控制檯窗口中隱藏文本。它可以作爲選項傳遞給subprocess.Peopen()。試試這個:

def interpreter1(): 
     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','/K',c] , creationflags=0, shell=False, startupinfo=startupinfo, stdout=PIPE, stderr=sp.STDOUT, stdin=PIPE) 
     texte01= ps.stdout.readlines() 
+0

非常感謝你!有用 ! @Kevin – Ibrahim