如何关闭python "sh"库的打印结果
How to turn off printing result of python "sh" library
我正在使用 Python 开发服务,当我尝试使用 Python sh
库获取服务状态时,它将 return 结果像这样的变量:
import sh
status = str(sh.service('nginx','status'))
if 'active' in status:
print('ready')
它工作正常,但是当我尝试获取 supervisor
服务的状态时,它会在终端中打印所有结果并破坏我的命令输出。
那么如何关闭终端打印的这个结果呢?
您需要 redirect 输出。
要么 /dev/null:
sh.service('nginx','status', _out='/dev/null')
或 StringIO
对象供您检查输出:
from io import StringIO
buffer = StringIO()
sh.service('nginx','status', _out=buffer)
output = buffer.getvalue()
使用 _err
重定向 stderr 输出。
它也将被处理(有助于避免在终端上打印):
try:
...
except shErrorReturnCode:
...
我正在使用 Python 开发服务,当我尝试使用 Python sh
库获取服务状态时,它将 return 结果像这样的变量:
import sh
status = str(sh.service('nginx','status'))
if 'active' in status:
print('ready')
它工作正常,但是当我尝试获取 supervisor
服务的状态时,它会在终端中打印所有结果并破坏我的命令输出。
那么如何关闭终端打印的这个结果呢?
您需要 redirect 输出。
要么 /dev/null:
sh.service('nginx','status', _out='/dev/null')
或 StringIO
对象供您检查输出:
from io import StringIO
buffer = StringIO()
sh.service('nginx','status', _out=buffer)
output = buffer.getvalue()
使用 _err
重定向 stderr 输出。
它也将被处理(有助于避免在终端上打印):
try:
...
except shErrorReturnCode:
...