我需要实现这个目标:
ai - bi
我无法修改def x():
subprocess.Popen(...)
但是我需要在x()
内部调用stderr
/ stdout
。
我需要类似的东西:
Popen
......或类似的东西。
答案 0 :(得分:0)
从你的x函数返回popen对象,然后从你的调用者文件中访问他,如下所示:
def x():
return subprocess.Popen(...)
p= x()
print p.stdout
print p.stderr
print p.returncode
等......
答案 1 :(得分:0)
没有直接而简单的方法。您必须从另一个线程确定子进程的PID并弄乱其UNIX文件描述符。乱。
答案 2 :(得分:0)
正弦
...我需要达到(压制)
stderr
/stdout
...
您是否尝试过此处描述的方法Silence the stdout of a function in Python without trashing sys.stdout and restoring each function call?
在你的情况下,它可能类似于
import io
import sys
save_stdout = sys.stdout
suppress_stdout():
try:
sys.stdout = io.BytesIO()
x()
finally:
sys.stdout = save_stdout