Python操作系统故障

时间:2013-04-29 02:23:38

标签: python terminal os.system

我正在使用pythonqt设计界面,当我尝试使用os.system调用我的程序时,界面会冻结。

 def pairClicked(self,exp1,exp2):
      os.system("""cd kat
                   ./run -v pair""") #in the terminal i used to call my python interface, it runs this commands
      os.system(exp1+" "+expr2) #but here nothing happens

一旦我终止了终端所说的程序(如果是exp1=t1exp2=t2):

sh 1: t1 not found
sh 2: t2 not found

我做错了什么的意外/消极? 请注意,这是我第一次做这类事情。

修改

我编辑并使用了这段代码

 p=subprocess.Popen(['cd','kat','./run', '-pair', str(test.__len__()),expr1Text,expr2Text],stdout=subprocess.PIPE,shell=True)
 out= p.communicate()
 print(out)

但它正在返回('',None)。 我认为问题是我使用cd kat ./run -pair *len* expr1 expr2之类的命令而不是:

cd kat
./run -pair *len*
expr1
expr2

如何使用子流程创建新行?

1 个答案:

答案 0 :(得分:1)

听起来像./run正在阻止。

您可能需要生成异步子进程或者可能需要使用其他线程,因此您的GUI可以在./run运行时继续工作。