请问 subprocess.Popen 呼叫另一个程式的问题
需求是呼叫另一个程式将程式执行过程印出到画面(stdout)之外
同时把执行过程存到变量里做后续判断
例子如下, hello.py 要求使用者输入资料并印出,另一个程式 test.py呼叫 hello.py
想要储存 hello.py 的执行过程,但是如果设定stdout=PIPE,执行过程就不会显示提示
要使用者输入资料
不知道该怎么设定?
hello.py
if __name__=='__main__':
name = input("please enter your name : ")
print("hello, "+name)
test.py
def run_cmd(cmd):
process = subprocess.Popen(cmd, universal_newlines=True, shell=True,
stdout=PIPE, stderr=PIPE)
stdout, stderr = process.communicate()
ret = process.returncode
return ret, stdout, stderr
def main():
retval, output, stderr = run_cmd("hello.py")
print(f"\nResult:\n{output}")
sys.exit(0)