我正在使用Tkinter创建一个接口,将脚本连接到解释器,该角色将运行这些脚本。我正在使用子进程模块popen(),它工作正常,但运行的结果显示在控制台窗口中。我尝试将结果重定向到我的界面中的文本区域,但控制台窗口仍然弹出,但这次是空的,只有在我关闭控制台窗口后,结果才显示在此文本区域中。 任何人都可以帮我弄清楚我做错了什么? 提前谢谢你。
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 :(得分: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()