python中shell執行知識點

2021-10-13 05:23:57 字數 1727 閱讀 5993

更多程式設計教程請到:菜鳥教程

高州陽光論壇

人人影視

os.system

system方法會建立子程序執行外部程式,方法只返回外部程式的執行結果。這個方法比較適用於外部程式沒有輸出結果的情況。

import os

os.system('ls')

commands.getstatusoutput

使用commands模組的getoutput方法,這種方法同popend的區別在於popen返回的是乙個檔案控制代碼,而本方法將外部程式的輸出結果當作字串返回,很多情況下用起來要更方便些。

主要方法:

當需要得到外部程式的輸出結果時,本方法非常有用。比如使用urllib呼叫web api時,需要對得到的資料進行處理。os.popen(cmd) 要得到命令的輸出內容,只需再呼叫下read()或readlines()等 如a=os.popen(cmd).read()

import os

ls = os.popen('ls')

print ls.read()

commands.getstatusoutput

使用commands模組的getoutput方法,這種方法同popend的區別在於popen返回的是乙個檔案控制代碼,而本方法將外部程式的輸出結果當作字串返回,很多情況下用起來要更方便些。

主要方法:

import commands

commands.getstatusoutput('ls -lt') # 返回(status, output)

subprocess.call

from subprocess import call

call(["ls", "-l"])

import shlex, subprocess

def shell_command(cmd, timeout) :

data =

try :

process = subprocess.popen(cmd, shell=true, stdout=subprocess.pipe, stderr=subprocess.pipe)

try:

outs, errs = process.communicate(timeout=timeout)

data["stdout"] = outs.decode("utf-8")

data["stderr"] = errs.decode("utf-8")

data["rc"] = trueexcept subprocess.timeoutexpired :

process.kill()

outs, errs = process.communicate()

data["rc"] = false

data["stdout"] = outs.decode("utf-8")

data["stderr"] = "timeout"

data["timeout"] = true

except exception as e :

data[「rc」] = false

data[「stderr」] = e

finally :

return data

shell中執行python檔案

python中想在shell中呼叫乙個test.py檔案裡面的方法。test.py檔案裡面的內容如下 python view plain copy print?deflistfea print this is myself deflistfeat fea print this is fea defl...

Python指令碼中執行shell命令

system 其中最後乙個0是這個命令的返回值,為0表示命令執行成功。使用system無法將執行的結果儲存起來。這裡寫描述popen 獲取命令執行的結果,但是沒有命令的執行狀態,這樣可以將獲取的結果儲存起來放到list中。commands 可以很方便的取得命令的輸出 包括標準和錯誤輸出 和執行狀態位...

python執行shell命令

在此比較一下兩種方法執行系統命令的方法,以方便於日後運用 1.os.system system command exit status execute the command a string in a subshell.僅僅在乙個子終端執行系統命令,而不能獲取命令執行後的返回資訊.os.syste...