python中得到shell命令輸出的方法subprocess


以下使用的module都是系統自帶的,無需額外安裝。
 
python2.7 和 python3 都可以使用
1.
import subprocess

def execute_cmd(cmd):
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
    output, err = p.communicate()
    # 判斷命令是否執行成功
    status = 1 if err else 0
    if status == 0:
        print('[SUCCESS] %s' % cmd)
    else:
        print('[ERROR] %s' % cmd)
        print(err)
    return status, output
2.
import os

process = os.popen('ls -l') # return file
output = process.read()
process.close()

# 簡單寫
with os.popen('ls -l') as process:
    output = process.read()

 

python 2.7

import commands

return_code, output = commands.getstatusoutput('ls -l')

 

 python3

import subprocess

def execute_cmd(cmd)
    ''' status: 0: success, 1: error
       ret: success: stdout, error: stderr
    '''
    status, ret = subprocess.getstatusoutput(cmd)
    if status == 0:
        print('[SUCCESS] %s' % cmd)
    else:
        print('[ERROR] %s' % cmd)
        print(ret)
    return status, ret

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM