Python: назначить вывод на печать переменной - PullRequest
20 голосов
/ 04 мая 2011

Я хотел бы знать, как назначить выходные данные функции print (или любой функции) переменной.Для примера:

import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()

Как назначить вывод print tag.getArtist для переменной?

Ответы [ 4 ]

21 голосов
/ 04 мая 2011

Оператор print в Python преобразует свои аргументы в строки и выводит эти строки в стандартный вывод.Чтобы вместо этого сохранить строку в переменную, преобразуйте ее только в строку:

a = str(tag.getArtist())
7 голосов
/ 04 мая 2011

возможно вам нужна одна из str, repr или unicode функций

somevar = str(tag.getArtist())

в зависимости от того, какую оболочку python вы используете

5 голосов
/ 04 мая 2011
0 голосов
/ 07 ноября 2018

Чтобы ответить на вопрос в целом how to redirect standard output to a variable ?

, сделайте следующее:

from io import StringIO
import sys

result = StringIO()
sys.stdout = result
result_string = result.getvalue()

Если вам нужно сделать это только в какой-то функции, сделайте следующее:

old_stdout = sys.stdout  

# your function containing the previous lines
my_function()

sys.stdout = old_stdout
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...