将命令发送到subprocess.Popen()进程

时间:2016-07-04 14:52:12

标签: python python-3.x asynchronous subprocess popen

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

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

可以使用,但这是因为stdin.close(),我需要能够在不关闭管道的情况下完成此操作。

如何在不关闭管道之后将命令传递给进程?

1 个答案:

答案 0 :(得分:2)

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

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