我需要将命令传递给subprocess.Popen()
上的进程,但是当我这样做时,它只有在我之后使用stdin.close()
时才有效。我的代码如下。
sprocess.stdin.write('/stop'.encode())
sprocess.stdin.flush()
sprocess.stdin.close()
sprocess.stdout.close()
可以使用,但这是因为stdin.close()
,我需要能够在不关闭管道的情况下完成此操作。
如何在不关闭管道之后将命令传递给进程?
答案 0 :(得分:2)
请注意,sprocess.stdin.write('/stop'.encode())
不会添加换行符!您的子进程可能期望输入的行,由换行符或EOF表示。关闭stdin
将发送该EOF。
尝试发送sprocess.stdin.write('/stop\n'.encode())
。