2

我正在使用 设计一个界面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

一旦我终止程序,终端就会说(在 and 的情况下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

如何使用 subprocess 制作新行?

4

1 回答 1

1

听起来 ./run 正在阻塞。

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

于 2013-04-29T03:12:10.297 回答