首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python子流程:检查执行的脚本是否要求用户输入

python子流程:检查执行的脚本是否要求用户输入
EN

Stack Overflow用户
提问于 2016-03-02 15:21:17
回答 1查看 3K关注 0票数 7
代码语言:javascript
复制
import subprocess

child = subprocess.Popen(['python', 'simple.py'], stdin=subprocess.PIPE)
child.communicate('Alice')

我知道您可以通过通信与已执行的脚本进行通信,如何检查脚本“simple.py”是否要求用户输入?

simple.py可以要求5-10个用户输入,所以简单地硬编码communicate是不够的。

编辑:希望在脚本运行时解析stdout并与脚本进行通信。

代码语言:javascript
复制
while True:
    if child.get_stdout() == '?':
       # send user input
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-02 15:44:31

一个简单的例子:

simple.py:

代码语言:javascript
复制
i = raw_input("what is your name\n")
print(i)
j = raw_input("What is your age\n")
print(j)

读和写:

代码语言:javascript
复制
import subprocess

child = subprocess.Popen(['python2', 'simple.py'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)

for line in iter(child.stdout.readline, ""):
    print(line)
    if "name" in line:
        child.stdin.write("foo\n")
    elif "age" in line:
        child.stdin.write("100\n")

输出:

代码语言:javascript
复制
what is your name

foo

What is your age

100
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35751295

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档