1) os.system()
此方法啟動新的程序來執行指定的外部命令,但是不能返回外部命令的輸出,外部命令任然輸出到標準輸出。此函式的返回值與所執行的系統有關,在windows系統返回外部命令的返回值,在linux系統中,返回值與函式wait()類似,程序kill的訊號和返回值組成的16位值。
例如:在windows上執行:
os.system("tasklist")
在linux上執行:
os.system("ps -aux")
2) os.fork() + os.exec*()
啟動新的程序,然後在新程序環境中執行外部程式。os.fork()方法只在linux環境下有效。一般不常用。
3) os.popen()
啟動新的程序,且將外部命令的輸出作為檔案型別物件返回。不能獲得外部命令的返回值。
例如:output = os.popen("tasklist")
output.read()
4) commands.getstatusoutput() 或 subprocess.popen()
在python2.6前使用commands.getstatusoutput();
在python2.6之後只用subprocess.popen()。
使用subprocess模組可以獲得外部命令的輸出和返回值,且可以設定等待外部命令結束,還外部命令還可以接受來自管道的輸入。
python31高階[建立程序]
python31高階[python的subprocess與pipe]
總之,如果只是簡單地執行外部命令,可以使用os.system(),但是如果需要更複雜的功能需要獲得外部命令的返回值和輸出且需要與外部命名互動,則使用subprocess模組。
參考: perl執行外部命令的方法
完!
python類庫32 多執行緒
一 python 多執行緒 因為cpython的實現使用了global interpereter lock gil 使得python中同一時刻只有乙個執行緒在執行,從而簡化了python直譯器的實現,且python物件模型天然地執行緒安全。如果你想你的應用程式在多核的機器上使用更好的資源,建議使用m...
Python呼叫(執行)外部程式
在python中可以方便地使用os模組執行其他的指令碼或者程式,這樣就可以在指令碼中直接使用其他指令碼,或者程式提供的功能,而不必再次編寫實現該功能的 為了更好地控制執行的程序,可以使用win32process模組中的函式。如果想進一步控制程序,則可以使用ctype模組,直接呼叫kernel32.d...
Python呼叫(執行)外部程式
1 使用os.system函式執行其他程式 2 使用shellexecute函式執行其他程式 3 使用createprocess函式執行其他程式 4 使用ctypes呼叫kernel32.dll中的函式 1 使用os.system函式執行其他程式 os模組中的system 函式可以方便地執行其他程式...