Как я могу подавить вывод в консоли при импорте пакетов в RPY2 в Python?

StackOverflow https://stackoverflow.com/questions/4745388

  •  13-10-2019
  •  | 
  •  

Вопрос

Всякий раз, когда я запускаю пакеты импорта сценария с import В RPY2 в Python всегда появляются дополнительные линии, появляющиеся в консоли. Я вставил в примере ниже. Как я могу подавить это поведение?

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.
Это было полезно?

Решение

Вы можете временно перенаправить выходной поток в черную дыру непосредственно перед спам -писом кода.

import sys

class Blackhole(object):

    def write(self, string):
        pass

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

function_el_spammo()

sys.stdout = stdout

Другие советы

Кроме require(tseries, quietly = TRUE) и использование sink(), или его эквивалент Python, есть также просто

suppressMessages( library( tseries ))

который я предпочитаю.

В вашем сценарии я бы предварительно загрузил tseries Пакет (на всякий случай, если он вызван каким -то другим функционированием/пакетом), используя

require(tseries, quietly = TRUE)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top