2015-06-19 47 views
1

我想知道如何完全自動化結帳。我試過使用python檢出文件(cleartool)

os.system('cleartool co ' + pathname) 

但仍然提示我輸入關於結帳的評論。立即添加更多的os.system()命令並不完全正常 - 它們只在輸入註釋後才執行。

我在尋找使用子進程,也許Popen,但我不太瞭解他們如何從我可以在網上找到的文檔工作。

任何幫助將不勝感激,謝謝!

回答

1

如果你不需要輸入註釋,一個簡單的-nc就足夠了:

os.system('cleartool co -nc ' + pathname) 

請參閱cleartool checkout man page

如果註釋是已知的,您可以添加它直接(-c xxx

在這兩種情況下,結賬變成非交互,更多的套件來批量處理。

+0

感謝您的回覆!我不完全確定我是否需要發表評論,但在嘗試使用此代碼時,我會看到一個小小的彈出窗口,提示需要輸入評論,並附帶一個「中止」按鈕,供我按下。 – Jon

+0

@Jon我已經編輯了答案:'-c xxx'或'-nc'表示不會有任何彈出框 – VonC

+0

-c xxx線條很精美!非常感謝!不幸的是,-nc行不阻止彈出窗口。我認爲-c xxx足以滿足我的需求,但我還不確定。無論如何,非常感謝,你們幫助我顯着。 – Jon

1

您可以使用POPEN和交流調用cleartool後輸入註釋:

from subprocess import Popen 

p = Popen(['cleartool','co',pathname]) 

p.communicate("comment\n") 
+0

感謝您的回覆!這比我之前和Popen嘗試過的任何東西都要好,但它仍然沒有成功。我仍然需要手動輸入我的評論。你知道這可能是爲什麼嗎? – Jon

+0

@Jon,我正在尋找命令列表,但下面的答案提供了man頁面,你可以也應該使用'subprocess.check_call'傳遞參數列表 –

+0

感謝您的跟蹤!在這種情況下,參數列表會是什麼?我想這對我來說是最令人困惑的事情。我可以只說subprocess.check_call('cleartool co'+路徑名,'評論')? – Jon