Как в python stdout вывести в переменную?

Пользователь

от magdalen_kub , в категории: Python , 7 месяцев назад

Как в python stdout вывести в переменную?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от laney_johnson , 7 месяцев назад

@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 в виде строки.