在python中循环外部命令

时间:2015-10-05 14:17:17

标签: python loops process multiprocessing

我试图在循环中对自定义应用运行一组简单的命令行调用。

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

以外的任何内容上运行该命令

1 个答案:

答案 0 :(得分:1)

更改args不会更改ExternCmd。您需要在循环中设置它,例如:

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