向 subprocess.Popen() 进程发送命令

Send commands to subprocess.Popen() process

我需要将命令传递给 subprocess.Popen() 上的进程,但是当我这样做时,它只有在我之后使用 stdin.close() 时才有效。我的代码如下。

sprocess.stdin.write('/stop'.encode())
sprocess.stdin.flush()
sprocess.stdin.close()
sprocess.stdout.close()

可行,但那是因为 stdin.close(),我需要能够在不关闭管道的情况下执行此操作。

如何在不关闭管道的情况下将命令传递给进程?

注意sprocess.stdin.write('/stop'.encode())不会加换行!您的子进程可能需要 行输入,由换行符或 EOF 表示。关闭 stdin 将发送该 EOF。

尝试发送 sprocess.stdin.write('/stop\n'.encode())