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

时间:2011-01-20 09:31:11

标签: python r rpy2

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

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.

3 个答案:

答案 0 :(得分:7)

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

suppressMessages( library( tseries ))

我更喜欢。

答案 1 :(得分:6)

您可以暂时将输出流重定向到垃圾邮件之前的黑洞。

import sys

class Blackhole(object):

    def write(self, string):
        pass

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

function_el_spammo()

sys.stdout = stdout

答案 2 :(得分:2)

在你的R脚本中,我会使用

预加载tseries包(以防万一被其他功能/包调用)
require(tseries, quietly = TRUE)