我正尝试使用POPEN命令读写guest-vm控制台。读取(标准输出)工作正常,但是当我添加标准输入到POPEN我得到“无法控制TTY运行交互式控制台”。感谢有关如何克服此错误的任何建议。无法在没有控制的情况下运行交互式控制台TTY
p = Popen(["virsh", "console", "guest-vm"],
shell=False, stdin=PIPE, stdout=PIPE, close_fds=True)
for line in iter(p.stdout.readline, b''):
if line == "SUCCESS":
p.stdin.write('\n')
ERROR: 错误:不能没有控制TTY
你可以使用'pexpect','pty'模块来提供伪tty。这里有一个[代码示例,如何使用pty读取输出](http://stackoverflow.com/a/12471855/4279)(你的情况是相似的,但你需要一个'select'循环来交错读/写,参见[how 'pty.spawn()'实现](https://github.com/python/cpython/blob/3f409f756b7b8f75c4543b2c31566bd8b8dbb3dd/Lib/pty.py#L119-L170))。 – jfs 2015-07-23 23:40:01