我正在尝试在的输出中查找字符串过程通信为子流程.Popen. 我的代码如下:
proc = subprocess.Popen(["./runCommand.sh" + " -i " + ip + " -c " + cmd], stdout=subprocess.PIPE, shell=True)
output = proc.communicate()
p_status = proc.wait()
if 'someword' in output:
#dosomething
似乎在输出中找不到我要查找的单词。 打印时输出如下所示:
(b'blabla someword\blabla\n', None)
我需要转换这个才能找到带“in”的东西吗?在
编辑:
谢谢你的回答!
我把它改成了“output[0],但还是得到了一个错误
TypeError: a bytes-like object is required, not 'str'
我能在这里做什么?使用decode()?在
您得到的是一个双元素元组,如果您访问元组的第一个元素,则可以使用
in
:因此,您需要将
output
替换为output[0]
,以使您的代码正常工作。在您正在将stdout+stderr都放入
output
,因此需要检查if 'someword' in output[0]
:或者更好:
总是检查文件:
^{pr2}$相关问题 更多 >
编程相关推荐