2013-01-23 28 views
2

我是卸載通過Python OS在Linux中一些包模塊我的代碼就像如何在python中輸入流?

def uninstallZdev(): 
    print 'Uninstallation as a Super User' 
    system('apt-get remove xxx') 

uninstallPackage() 

但除去包問這樣

此操作後,2621 KB的磁盤空間將被釋放。 是否要繼續[Y/n]? 如何通過Python給出的Y方案

+0

如何自動化Y給終端 –

回答

4

配置apt-get不要問(見apt-get man page

apt-get --assume-yes remove xxx 

對於工具無法配置,使用pexpect駕馭過程pexpect讓你聽基於一個簡單的API從一個子進程的輸出,併發送輸入:

import pexpect 

ag = pexpect.spawn('apt-get remove xxx') 
ag.expect('Do you want to continue') 
ag.send('Y') 
ag.wait() 
ag.close() 
+0

+1提供鏈接到模塊! – NlightNFotis

+0

這對我非常有用 –

0

使用-y自動apt-get的。因此,你。不必模擬「y」按鈕。

順便說一句,我建議使用子流程模塊,特別是如果你打算使用stdin/stdout工作。

而且:要小心!你似乎以root身份或sudo運行。如果由於某種原因xxx碰巧是libc-bin,那麼您將很有樂趣恢復您的系統。