2015-10-05 73 views
0

我试图在循环内运行一组简单的命令行调用自定义应用程序。在Python中循环外部命令

list=['set1','set2','set3','set4'] 
ExternCmd = (myapp + ' ' + arg1 + ' ' + arg2 ' -v ') 
for item in list: 
    arg1 = item 
    self.process.start(ExternCmd) 
    self.process.waitForFinished(-1) 

但我不明白套2 - 4处理,只有第一。

我尝试添加一个self.process.join()来获得循环等待当前设置,完成处理,但我得到了以下错误:

AttributeError: 'QProcess' object has no attribute 'join' 

任何帮助将是巨大的让我流程按顺序工作。我理想上喜欢他们一个接一个地被处理 - 而不是同时处理。

感谢

编辑:我把ExternCmd错了地方的这个例子。我的代码应该是:

list=['set1','set2','set3','set4'] 
for item in list: 
    arg1 = item 
    ExternCmd = (myapp + ' ' + arg1 + ' ' + arg2 ' -v ') 

    self.process.start(ExternCmd) 
    self.process.waitForFinished(-1) 

这仍然无法运行在比SET1

+2

你改变'arg1' –

+0

的代码不正确'ARG2“-v”'是无效的语法之前'ExternCmd'创建。发布真正的非工作代码。请参阅[mcve](http://stackoverflow.com/help/mcve)。 –

回答

1

更改参数表是不改变ExternCmd以外的任何命令。您需要设置在循环,例如:

list=['set1','set2','set3','set4'] 
for item in list: 
    ExternCmd = (myapp + ' ' + item + ' -v ') 
    self.process.start(ExternCmd) 
    self.process.waitForFinished(-1) 
+0

哎呀,我急着写一个简单的例子,我把ExternCmd放在循环之外。在我的实际代码里面 - 我会更新我原来的帖子 – sjm1983