【发布时间】:2019-04-25 09:01:33
【问题描述】:
我正在尝试通过 python 脚本使用 ubuntu 终端。
脚本接收命令文本(来自 input() 用于测试),将其发送到终端,终端返回命令结果,脚本在控制台中打印结果。
我已经知道我应该使用子进程 Popen 和 PIPE,但是在输入第一个命令后,脚本只打印 b'',在第二个引发错误“ValueError:启动通信后无法发送输入”
我的测试代码(是的,它很糟糕):
import subprocess as sb
from subprocess import PIPE, Popen
p=Popen(['gnome-terminal'],stdout=PIPE,stdin=PIPE,stderr=PIPE)
command = 'cmd'
while True:
command = input()
out_data, err_data = p.communicate(command.encode())
print(repr(out_data))
我知道我做错了,但找不到正确的方法。对不起英语。谢谢。
【问题讨论】:
标签: python ubuntu terminal subprocess