如何在Python中使用RPy2导入包时抑制控制台输出?

3 投票
3 回答
1712 浏览
提问于 2025-04-16 10:18

每当我在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.

3 个回答

2

在你的R脚本中,我建议你提前加载一下tseries这个包(以防它被其他函数或包调用)。你可以使用下面的代码:

require(tseries, quietly = TRUE)
7

除了使用 require(tseries, quietly = TRUE)sink(),或者它在Python中的类似用法,还有一个简单的方法

suppressMessages( library( tseries ))

这是我更喜欢的方式。

6

你可以在那些产生垃圾信息的代码之前,暂时把输出流重定向到一个“黑洞”。

import sys

class Blackhole(object):

    def write(self, string):
        pass

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

function_el_spammo()

sys.stdout = stdout

撰写回答