如何将标准Yum输出保存到Python Yum API的变量



例如:

>>> import yum
>>> y = yum.YumBase()
>>> x = {'release': '11.el7', 'epoch': '', 'version': '3.10', 'arch': 'x86_64', 'name': 'PyYAML'}
>>> y.install(**x)
Package PyYAML-3.10-11.el7.x86_64 is obsoleted by python2-pyyaml-5.1.2-1.0.1.el7.x86_64 which is already installed
[]

这里返回的是空列表。有没有一种干净的方法可以将标准的百胜消息分配给变量?

似乎这些消息是通过日志生成的。因此,获取这些消息的一种方法是将函数调用的输出重定向到缓冲区。

>>> import logging
>>> import io
>>> from contextlib import redirect_stderr
>>>
>>> def install():
...     logging.warning("Some Message")
...     return []
...
>>> f = io.StringIO()
>>>
>>> with redirect_stderr(f):
...     result = install()
...
>>> print("Functon Result: ", result)
Functon Result:  []
>>> print("Function messages::", f.getvalue())
Function Warning messages:: WARNING:root:Some Message

最新更新