2015-10-05 55 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