如何将打印输出赋值给变量?
如何把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())