阻塞等待命令执行完成
os.popen(cmd, mode='r', buffering=-1)
例子
必须要在 命令之后 加上 2>&1
with os.popen(cmd_str) as p:
res = p.read()
read才可以捕获到错误输出
cmd_str = "sudo {} {} hostID 2>&1".format(zettakey_path, updatetime) os.chdir(work_dir) with os.popen(cmd_str) as p: res = p.read() if res.strip().startswith("LICENSE:"): logger.info("执行成功 {} 结果 : {} 工作目录:{}".format( cmd_str, res, work_dir)) else: logger.info("执行失败 {} 结果 : {} 工作目录:{}".format( cmd_str, res, work_dir))