如何隐藏在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