python exec 函数不返回 echo 语句
python exec function not returning echo statement
我的设置如下所示:
from io import StringIO
from contextlib import redirect_stdout
f = StringIO()
with redirect_stdout(f):
exec("""'echo "test"'""")
s = f.getvalue()
print("return value:",s)
为什么return值s不包含“test”是有原因的?我怎样才能访问这个值?
exec
的第一个参数应该是
The source may be a string representing one or more Python statements
or a code object as returned by compile()
你做到了
exec("""'echo "test"'""")
即交付给 exec
一些无效的 python 声明。
exec
执行 Python 代码;它不等同于 os.system
.
您正在执行的是 Python 表达式语句 'echo "test"'
,它的计算结果只是字符串。表达式有值,但表达式语句忽略表达式产生的值。在这种情况下,没有任何内容写入标准输出。
你想要 subprocess.check_output
:
>>> subprocess.check_output("""echo 'test'""", shell=True).decode().rstrip('\n')
'test'
我的设置如下所示:
from io import StringIO
from contextlib import redirect_stdout
f = StringIO()
with redirect_stdout(f):
exec("""'echo "test"'""")
s = f.getvalue()
print("return value:",s)
为什么return值s不包含“test”是有原因的?我怎样才能访问这个值?
exec
的第一个参数应该是
The source may be a string representing one or more Python statements
or a code object as returned by compile()
你做到了
exec("""'echo "test"'""")
即交付给 exec
一些无效的 python 声明。
exec
执行 Python 代码;它不等同于 os.system
.
您正在执行的是 Python 表达式语句 'echo "test"'
,它的计算结果只是字符串。表达式有值,但表达式语句忽略表达式产生的值。在这种情况下,没有任何内容写入标准输出。
你想要 subprocess.check_output
:
>>> subprocess.check_output("""echo 'test'""", shell=True).decode().rstrip('\n')
'test'