Подавить весь вывод консоли в оболочку Python Stack Overflow

В настоящее время я работаю со скриптом Python, который принимает консольные входные данные и производит консольные выходные данные, используемые другой частью приложения. Проблема в том, что одна из библиотек, которые я использую, выдает много предупреждающих сообщений. Я устал перезаписать стандартный вывод и стандартный вывод, но даже в этом случае эти сообщения все еще печатаются. Есть ли другой способ, которым Python может печатать на консоли? Что еще я могу сделать, чтобы подавить эти сообщения?

Вот часть кода, которая вызывает проблемы

import sys
import os
import logging
from rdkit import Chem
from rdkit.Chem import AllChem

if __name__ == "__main__":
sink = open(os.devnull, "w")
sys.stdout = sink
sys.stderr = sink
logging.disable(100)
logger = logging.getLogger()

reaction = AllChem.ReactionFromSmarts("C>>C")
result = reactants = reaction.RunReactants((Chem.MolFromSmiles("CC"),))

print "NOT SHOWN"raise Exception("NOT SHOWN EITHER")
logger.critical("STILL NOTHING")

и он производит следующий вывод:

[13:36:26] reactant 0 has no mapped atoms.
[13:36:26] product 0 has no mapped atoms.

Я заблокировал stdout, stderr и даже журналы с приоритетом не более 100. Все безрезультатно. Я подозреваю, что эта проблема может быть связана с тем фактом, что эта библиотека использует код C ++ в ядре, но это не объясняет, как избавиться от этих сообщений.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]