2011-04-12 57 views
0

如何隱藏在python中運行時安裝java(apt-get openjdk-6-jre)的過程? 因此,我可以用 「安裝Java ...」替換它,直到它準備就緒。在python中隱藏apt-get的回聲

在此先感謝。

+0

[抑制輸出的模塊調用外部庫]可能的副本(http://stackoverflow.com/questions/4178614/suppressing-output-of-module-calling-outside-library) – 2011-04-12 14:41:30

+1

您可以使用'subprocess'或其他像那樣產生一個新的過程?如果是,只需執行'>/dev/null 2>&1'並打印任何你想要的。 – khachik 2011-04-12 14:42:39

回答

1
proc = subprocess.Popen('apt-get install openjdk-6-jre', stdout=subprocess.PIPE, 
         stderr=subprocess.PIPE) 
output, errors = proc.communicate() 
return_Value = proc.returncode 

這會將程序輸出轉換爲Python中的字符串,您應該在其中檢查錯誤。見subprocess docs。 (不像重定向到/ dev/null的,這是跨平臺的。)

+0

但是'apt-get'不是。 – 2011-04-12 15:06:25

+0

'os.devnull'是跨平臺的。 – jfs 2011-04-12 15:50:43

2

這裏的@ khachik的評論的實現:

import os 
from subprocess import STDOUT, check_call 

check_call(['apt-get', 'install', 'openjdk-6-jre'], 
      stdout=open(os.devnull,'wb'), stderr=STDOUT) 

它拋出一個異常在錯誤的情況下。