我正在使用某人的代码,c++其中由python. 我无法进入源代码并对其进行修改。当用 调用时python,它会打印一些东西,我想将此输出分配给一个变量。我怎样才能做到这一点?
def print_something(string):
print(string)
x = print_something('foo')
Run Code Online (Sandbox Code Playgroud)
print(type(x))
Run Code Online (Sandbox Code Playgroud)
Out[5]: NoneType
Run Code Online (Sandbox Code Playgroud)
理想情况下,此代码将分配'foo'给x作为字符串。
也许你可以重定向sys.stdout到缓冲区?
import sys
from io import StringIO
stdout_backup = sys.stdout
sys.stdout = string_buffer = StringIO()
# this function prints something and I cannot change it:
def my_function():
print('Hello World')
my_function() # <-- call the function, sys.stdout is redirected now
sys.stdout = stdout_backup # restore old sys.stdout
string_buffer.seek(0)
print('The output was:', string_buffer.read())
Run Code Online (Sandbox Code Playgroud)
印刷:
The output was: Hello World
Run Code Online (Sandbox Code Playgroud)