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