【发布时间】:2016-03-02 22:15:31
【问题描述】:
我需要启动一个进程并将一个字符串输入标准输入,我目前正在这样做:
proc = subprocess.Popen(["MyCommandHere"], stdin=subprocess.PIPE)
proc.communicate(input=bytes(my_str_input + "\n", "ascii"))
问题是当我使用subprocess.communicate()时它是一个阻塞调用,等待进程退出。我不想等待。
有没有什么方法可以让communicate() 不被阻塞,或者有什么其他的方法来管道我的输入?我问的是非阻塞写入,而不是非阻塞读取。
【问题讨论】:
-
我是在写,而不是在读
-
IANAPP,但也许在单独的进程中运行 proc.communicate 会起作用?
-
@bazza,如果有其他方法,我真的很讨厌这样做。
标签: python