Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 5, 2013 13:05:15

omo
Зарегистрирован: 2013-09-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Есть один модуль.

Коллеги, есть один програмный комплекс, всё написано на питоне, исходники не доступны. Есть куча модулей вида bla-bla-bla.pyc, производитель не рассчитывал, что их будут использовать вне комплекса, но “очень хочется” и очень надо. При подключении модуля получается такая вот ерунда:

>>> import some_module
Content-Type: application/json;
{"RESULT": "SUCCESS", "VALUE": "..какие-то интересующие меня данные..."}

dir(some_module) показывает нужные мне методы и воспользоваться результатом работы модуля я могу, но меня смущает именно момент подключения с выводом json данных. Можно ли как-нибудь штатным способом подавить вывод при импорте, ибо консольный скрипт, который будет использовать этот модуль, подразумевает несколько иной вывод. Или есть какой-то более правильный способ оперировать этим пресловутым json выводом?

Офлайн

#2 Сен. 5, 2013 14:25:47

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Есть один модуль.

from contextlib import contextmanager
 
@contextmanager
def silent_stdout():
    import sys
    write = sys.stdout.write
    do_not_write = lambda *args : None
    sys.stdout.write = do_not_write
    yield
    sys.stdout.write = write
 
with silent_stdout():
    import some_module
print('privet')
 

Отредактировано sergeek (Сен. 5, 2013 14:51:00)

Офлайн

#3 Сен. 5, 2013 16:37:31

omo
Зарегистрирован: 2013-09-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Есть один модуль.

То, что надо. Благодарю.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version