在Python中导入RPy2中的包时,如何禁止输出到控制台?

c00*_*ter 3 python r rpy2

每当我import在Python中运行使用RPy2 导入包的脚本时,控制台中总会弹出一些额外的行.我粘贴在下面的一个例子中.我该怎样抑制这种行为?

CookieJar:r cookies$ python script.py 

    ‘tseries’ version: 0.10-24

    ‘tseries’ is a package for time series analysis and computational
    finance.

    See ‘library(help="tseries")’ for details.
Run Code Online (Sandbox Code Playgroud)

Dir*_*tel 7

除了require(tseries, quietly = TRUE)和使用sink(),或它的Python等价物,还有简单的

suppressMessages( library( tseries ))
Run Code Online (Sandbox Code Playgroud)

我更喜欢.


小智 6

您可以暂时将输出流重定向到黑洞之前的代码.

import sys

class Blackhole(object):

    def write(self, string):
        pass

stdout = sys.stdout
sys.stdout = Blackhole()

function_el_spammo()

sys.stdout = stdout
Run Code Online (Sandbox Code Playgroud)