【发布时间】:2020-11-23 13:16:33
【问题描述】:
我有一个通过subprocess.run(...) 启动其他进程的python 脚本。通常这样的进程会自动运行,而无需从标准输入中读取。但是,在出现错误的情况下,进程会等待用户输入。我想从调用 python 脚本中检测到这种情况,然后例如杀死那个进程。我怎样才能做到这一点?
(我的想法是创建一个类似文件的对象,该对象在调用其.read() 方法时引发异常并将其传递给subprocess.Popen(...) 作为stdin kwarg 的“诱饵”。但这似乎有点丑陋,因为有些fileno 需要伪造。)
【问题讨论】:
-
不确定子流程模块是否可行。几天前我需要类似的东西并解决了pexpect 在那里你可以定义正则表达式/字符串基本上等待,当它出现时你可以根据需要处理它。
标签: python subprocess stdin popen