[英]subprocess.Popen() running a python script is not showing input() prompt
我正在使用subprocess.Popen()从我的“主” python脚本运行一个单独的python脚本,原因是我可以捕获错误。 我的问题是,如果单独的脚本使用带有提示(引号之间的文本)的input(“ Enter something:”)语句,则在运行“ main”脚本时,它(提示)将不会显示在控制台中然后依次通过subprocess.Popen()运行单独的脚本。
假设“主要” python脚本如下所示:
cmd = "python3 tmp.py"
output = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
stout, sterror = output.communicate()
并且“ tmp.py”看起来像这样:
text = input("Enter something: ")
现在,当我运行“主”脚本时,输出将只是一个闪烁的光标,可以在其中输入文本,按Enter键并将输入存储在text变量中,但是问题是提示(“ Enter something:”)不会显示/丢失! 为什么是这样? 以及如何解决?
您已将stdout
重定向到PIPE
。 这就是文本“输入内容:”转到...的地方
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.