python subprocess.popen 持续交互
时间: 2023-09-13 10:13:55 浏览: 345
Python如何通过subprocess调用adb命令详解
如果你想在 Python 中使用 `subprocess.Popen` 持续交互,可以使用 `communicate()` 方法。这个方法会等待子进程结束,并将子进程的输出和错误输出返回给父进程。
以下是一个示例代码:
```python
import subprocess
# 启动子进程
process = subprocess.Popen(['python3'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
# 持续交互
while True:
# 从标准输入读取用户输入
user_input = input('> ')
# 将用户输入发送给子进程
process.stdin.write(user_input.encode('utf-8'))
process.stdin.write(b'\n')
process.stdin.flush()
# 从子进程的标准输出读取响应
output = process.stdout.readline().decode('utf-8').strip()
# 输出响应
print(output)
```
在这个示例中,我们启动一个子进程,它是一个 Python 解释器。然后,我们进入一个无限循环,不断地从标准输入读取用户输入,并将其发送给子进程。子进程会执行用户输入的 Python 代码,并将输出发送回父进程。父进程将输出打印到控制台上。
阅读全文