我正嘗試使用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