ChatCrawlerпоиск по публичному Telegram Открыть приложение
P

Python Community | Chat

сообщение · 2025-07-28 10:45 UTC
I
🖥 Контекстный перехват stdout — как легко отключить или сохранить print 💡 Хотите, чтобы print() не мешал логике и при этом легко отключался или сохранялся в файл? Вместо того чтобы комментировать все print() в проде, подмените стандартный вывод через контекстный менеджер — и легко направляйте вывод в файл, /dev/null или даже буфер для последующей обработки. Это особенно полезно при отладке в прод-среде или при генерации логов без сторонних библиотек. import sys from contextlib import contextmanager from io import StringIO import os @contextmanager def capture_stdout(to_file=None, suppress=False): original_stdout = sys.stdout try: if suppress: sys.stdout = open(os.devnull, 'w') elif to_file: sys.stdout = open(to_file, 'w') else: buffer = StringIO() sys.stdout = buffer yield sys.stdout finally: sys.stdout.close() if sys.stdout not in (original_stdout, sys.__stdout__) else None sys.stdout = original_stdout # Пример использования: with capture_stdout(suppress=True): print("Этого вы не увидите") with capture_stdout(to_file="output.log"): print("А это уйдёт в файл") with capture_stdout() as captured: print("Это записано во внутренний буфер") print("Буфер содержит:", captured.getvalue().strip()) @Python_Community_ru
761 ·

Все сообщения за 28 июля 2025 · Вся лента · оригинал в Telegram

Открыть в Telegram Каталог площадок Искать в ChatCrawler

Слепок открытой публичной ленты из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог