python 呼叫 shell ,獲取返回值和返回資訊

ittangzeng發表於2019-01-15

網路上有各種方案解決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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章