我想寫一個包裝我們的軟件的python腳本。該腳本需要構建我們的產品,並將其打包。目前我們有其他腳本,每個腳本單獨執行,其中包括csh和perl腳本。一個這樣的腳本運行如下:是否可以通過subprocess.Popen與子子進程進行通信?
sudo mod args
其中mod是perl腳本;所以在蟒蛇我會做
proc = Popen(['sudo', 'mod', '-p', '-c', 'noresource', '-u', 'dtt', '-Q'], stderr=PIPE, stdout=PIPE, stdin=PIPE)
問題是,這個MOD腳本需要回答幾個問題。爲此,我認爲傳統的
(stdout, stderr) = proc.communicate(input='y')
會工作。我認爲它不工作,因爲Popen控制的過程是sudo,而不是提出問題的mod腳本。有沒有辦法與mod腳本進行交流,並仍然通過sudo運行它?
我嘗試了pexpect,它的工作原理是「預期的」。謝謝! – darrickc 2008-10-31 19:04:48