【发布时间】:2018-09-26 05:10:16
【问题描述】:
我正在尝试为一段代码编写一些基本测试,该代码通常通过标准输入无休止地接受输入,直到给出特定的退出命令。
我想检查程序是否在收到一些输入字符串时崩溃(在处理一段时间后),但似乎无法弄清楚如何发送数据而不是等待输出不在乎。
我当前的代码是这样的(以cat作为程序示例):
myproc = subprocess.Popen(['cat'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
myproc.communicate(input=inputdata.encode("utf-8"))
time.sleep(0.1)
if myproc.poll() != None:
print("not running")
else:
print("still running")
如何修改它以允许程序继续进行轮询,而不是在communicate() 调用之后挂起?
【问题讨论】:
标签: python subprocess popen