如何将打印输出赋值给变量?

50 投票
6 回答
179075 浏览
提问于 2025-04-16 16:59

如何把print函数(或者任何函数)的输出结果赋值给一个变量呢?

举个例子:

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

我该如何把print tag.getArtist的输出结果赋值给一个变量呢?

6 个回答

12

你可以使用参数 file 来改变 print 函数的输出方向。

from io import StringIO

s = StringIO()
print(42, file=s)
result = s.getvalue()
30

为了更一般地回答这个问题 如何将标准输出重定向到一个变量?

可以这样做:

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
35

在Python中,print这个命令会把你给它的内容变成字符串,然后把这些字符串输出到屏幕上。如果你想把这个字符串保存到一个变量里,而不是直接显示出来,只需要把它转换成字符串就可以了:

a = str(tag.getArtist())

撰写回答