python使用subprocess执行shell脚本

python使用subprocess执行shell脚本

项目中需要在后端执行shell脚本,使用subprocess库的Popen对象
参考官方文档

import subprocess


def execute_command_with_no_out(cmd, timeout):
    """
    执行shell命令
    :param cmd: shell命令
    :return: 执行结果和错误消息
    """
    p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE, close_fds=True)
    # 使用wait,设置超时时间,超时后触发TimeoutExpired异常
    try:
        p.wait(timeout=timeout)
        if p.poll:
            # 执行结果,communicate返回一个元组,如果执行成功,errs为空
            outs, errs = p.communicate()
            print(errs)
            print(outs)
    except subprocess.TimeoutExpired as e:
        print('执行超时')
        p.kill()


if __name__ == '__main__':
    execute_command_with_no_out('ping www.baidu.com -n 1', 5)
上一篇:golang 获取api 数据请求方式


下一篇:css_position_fixed