如何隱藏在python中運行時安裝java(apt-get openjdk-6-jre)的過程? 因此,我可以用 「安裝Java ...」替換它,直到它準備就緒。在python中隱藏apt-get的回聲
在此先感謝。
如何隱藏在python中運行時安裝java(apt-get openjdk-6-jre)的過程? 因此,我可以用 「安裝Java ...」替換它,直到它準備就緒。在python中隱藏apt-get的回聲
在此先感謝。
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的,這是跨平臺的。)
但是'apt-get'不是。 – 2011-04-12 15:06:25
'os.devnull'是跨平臺的。 – jfs 2011-04-12 15:50:43
這裏的@ khachik的評論的實現:
import os
from subprocess import STDOUT, check_call
check_call(['apt-get', 'install', 'openjdk-6-jre'],
stdout=open(os.devnull,'wb'), stderr=STDOUT)
它拋出一個異常在錯誤的情況下。
[抑制輸出的模塊調用外部庫]可能的副本(http://stackoverflow.com/questions/4178614/suppressing-output-of-module-calling-outside-library) – 2011-04-12 14:41:30
您可以使用'subprocess'或其他像那樣產生一個新的過程?如果是,只需執行'>/dev/null 2>&1'並打印任何你想要的。 –
khachik
2011-04-12 14:42:39