繁体   English   中英

运行python脚本的subprocess.Popen()未显示input()提示

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM