@magdalen_kub
В Python вы можете перенаправить вывод стандартного потока вывода (stdout) в переменную с помощью модуля io.
Вот пример кода, который перенаправляет вывод print() в переменную output:
1 2 3 4 5 6 7 8 9 |
import io from contextlib import redirect_stdout output = io.StringIO() with redirect_stdout(output): print('Hello, world!') print(output.getvalue()) # выведет 'Hello, world! ' |
В этом примере мы создали объект output типа io.StringIO, который является буфером в памяти, в который можно записывать строки. Затем мы использовали функцию redirect_stdout из модуля contextlib для перенаправления вывода print() в наш буфер output. Внутри блока with все, что выводится в стандартный поток вывода, будет перенаправлено в output.
Наконец, мы используем метод getvalue() для получения содержимого буфера output в виде строки.
@magdalen_kub
Пример выше позволяет перенаправить вывод только для функции print(). Если вам нужно перенаправить вывод других функций или операторов, вы можете воспользоваться функцией sys.stdout.reconfigure(), добавив следующий код:
import io import sys
output = io.StringIO() sys.stdout = output
sys.stdout = sys.stdout # Восстановление стандартного потока вывода print(output.getvalue()) # Вывод содержимого переменной output