python中執行shell命令的幾個方法

2022-05-07 09:15:10 字數 969 閱讀 5891

1.os.system()

a=os.system("df -ht | awk 'nr==3'")

該命令會在頁面上列印輸出結果,但變數不會保留結果,只會保留返回的狀態碼.

2.os.popen()

os.popen()返回的是 file read 的物件,但沒有狀態碼,不過影響不大.

a=os.popen("df -ht | awk 'nr==3'").read()

返回的是字串;

a=os.popen("df -ht | awk 'nr==3'").readlines()

返回的是列表.

3.commands適用於python2

>>> commands.getstatusoutput('ls /bin/ls')

(0, '/bin/ls')

>>> commands.getstatusoutput('cat /bin/junk')

(256, 'cat: /bin/junk: no such file or directory')

4.subprocess適用於python3

a=subprocess.getstatusoutput("df -ht | awk 'nr==3'")

返回的是乙個元組(狀態碼,執行結果)-(0, '17%')

a=subprocess.getoutput("cmd")

直接返回執行結果,subprocess沒有getstatus物件

5.用到時再研究

call--執行命令,返回狀態碼(命令正常執行返回0,報錯則返回1);

check_call--執行命令,如果執行成功則返回狀態碼0,否則拋異常;

check_output--執行命令,如果執行成功則返回執行結果,否則拋異常;

popen--用於執行複雜的系統命令,等用到再研究.

參考部落格:

linux中利用shell指令碼條件執行命令

在linux環境中,我們總會有一些命令需要經常用,例如經常跳轉到某些目錄下或者執行某些命令,輸入一連串的命令是很煩的,此時我們可以預先寫一些指令碼然後根據我們的選擇自動執行命令,那豈不是完美,本指令碼就是為此而生的 以跳轉不同的目錄舉例,當然也可以執行其他命令,這時候只需要模擬寫shell命令即可 ...

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 可以很方便的取得命令的輸出 包括標準和錯誤輸出 和執行狀態位...