Python RU
Видео
ac98aa2b-ece0-4382-b562-b77d1b4c904d_final.mp4 · 627 КБ · нажмите — покажем
ac98aa2b-ece0-4382-b562-b77d1b4c904d_final.mp4 · 627 КБ · нажмите — покажем
from contextlib import contextmanager
import sys
import io
@contextmanager
def capture_stdout():
old_stdout = sys.stdout
sys.stdout = buffer = io.StringIO()
try:
yield buffer
finally:
sys.stdout = old_stdout
# Пример использования
with capture_stdout() as out:
print("Это вывод, который перехвачен")
captured_output = out.getvalue()
print("Перехваченный текст:", captured_output)
🧠 Объяснение:
Этот хак позволяет временно перенаправить стандартный вывод print() внутрь объекта StringIO, чтобы «тихо» перехватить и сохранить его. Полезно для:
• тестирования CLI-приложений
• логирования скрытого вывода
• подавления шума в stdout во время исполнения кода
Работает как контекстный менеджер, не требует сторонних библиотек, и легко встраивается в production-код.
❤4👍3🥰2
20 · 1.7K ·