python 调用 shell ,获取返回值和返回信息

网络上有各种方案解决python调用shell的解决方案,但是没有一个完美的,以下是本人整理的一个方案,比较完美地解决了同时解决获取返回值和返回信息。


def run_linux_cmd_quiet(i_cmd, i_nohup='0'):

    l_func_name=__name__+ '.' + sys._getframe().f_code.co_name

    

    l_curTime=time.strftime('%Y%m%d_%H%M%S',time.localtime())

    l_result=l_curTime+str(os.getpid())+'.log'

    if i_nohup == '1':

        l_cmd="nohup {cmd} > {result} 2>&1 &".format(cmd=i_cmd, result=l_result)

    else:

        l_cmd="{cmd} > {result} 2>&1".format(cmd=i_cmd, result=l_result)

    val = os.system(l_cmd) 

    msg=file2List(l_result)

    if 0 != val:

        logger.print_error(l_func_name,common.concatString(l_cmd, 'failed.\n   retCode:',val))

    else:

        os.system('rm -f ' + l_result)

        if cfg.TRACE_FLAG == 'y':

            logger.print_info(l_func_name, common.concatString(l_cmd, 'ok.\n   retCode:',val))

    

    return (val,msg)


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29497382/viewspace-2558583/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29497382/viewspace-2558583/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值