1.1 os.system(command)
在乙個子shell中執行command命令,並返回command命令執行完畢後的退出狀態。這實際上是使用c標準庫函式system()實現的。這個函式在執行command命令時需要重新開啟乙個終端,並且無法儲存command命令的執行結果。
1.2 os.popen(command,mode)
開啟乙個與command程序之間的管道。這個函式的返回值是乙個檔案物件,可以讀或者寫(由mode決定,mode預設是'r')。如果mode為'r',可以使用此函式的返回值呼叫read()來獲取command命令的執行結果。
1.3 commands.getstatusoutput(command)
使用os. getstatusoutput ()函式執行command命令並返回乙個元組(status,output),分別表示command命令執行的返回狀態和執行結果。對command的執行實際上是按照 2>&1的方式,所以output中包含控制台輸出資訊或者錯誤資訊。output中不包含尾部的換行符。
2.1 subprocess.call(["some_command","some_argument","another_argument_or_path"])
subprocess.call(command,shell=true)
2.2 subprocess.popen(command, shell=true)
如果command不是乙個可執行檔案,shell=true不可省。
使用subprocess模組可以建立新的程序,可以與新建程序的輸入/輸出/錯誤管道連通,並可以獲得新建程序執行的返回狀態。使用subprocess模組的目的是替代os.system()、os.popen*()、commands.*等舊的函式或模組。
最簡單的方法是使用class subprocess.popen(command,shell=true)。popen類有popen.stdin,popen.stdout,popen.stderr三個有用的屬性,可以實現與子程序的通訊。
將呼叫shell的結果賦值給python變數
複製**
**如下:
handle = subprocess.popen(command, shell=true, stdout=subprocess.pipe)
print handle.communicate()[0]
在python/wxpython環境下,執行外部命令或者說在python程式中啟動另乙個程式的方法一般有這麼幾個:
1、os.system(command)
2、wx.execute(command, syn=wx.exec_async, callback=none)
若置syn為wx.exec_async則wx.excute函式立即返回,若syn=wx.exec_sync則等待呼叫的程式結束後再返回。
callback是乙個wx.process變數,如果callback不為none且syn=wx.exec_async,則程式結束後將呼叫wx.process.onterminate()函式。
os.system()和wx.execute()都利用系統的shell,執行時會出現shell視窗。如在windows下會彈出控制台視窗,不美觀。下面的兩種方法則沒有這個缺點。
3、class subprocess.popen
最簡單的用法是:
複製**
**如下:
import subprocess
subprocess.popen(command, shell=true)
如果command不是乙個可執行檔案,shell=true不可省。
前面三個方法只能用於執行程式和開啟檔案,不能處理url,開啟url位址可用webbrowser模組提供的功能。
4、webbrowser.open(url)
呼叫系統預設瀏覽器開啟url位址,如 webbrowser.open(''),也可以利用
webbrowser.open('h:\python.zip')來執行程式。這樣可以不必區分是檔名還是url,不知道在linux下是否可行。
以上在windows2000,python2.4a1,wxpython 2.5.1執行。
modify:還有一種方式:subprocess.call(*args, **kwargs)
Python python 呼叫c語言函式
雖然python是萬能的,但是對於某些特殊功能,需要c語言才能完成。這樣,就需要用python來呼叫c的 了 具體流程 c編寫相關函式 編譯成庫 然後在python中載入這些庫,指定呼叫函式。這些函式可以char int,float,還能返回指標。以下示例 通過python呼叫c函式,返回 hell...
遞迴呼叫python python生成器,遞迴呼叫
生成器 什麼是生成器 只要在函式體內出現yield關鍵字,那麼再執行函式就不會執行函式 會得到乙個結果,該結果就是生成器 生成器就是迭代器 yield的功能 yield為我們提供了一種自定義迭代器物件的方法 yield與return的區別 1.yield可以返回多個值 2.函式暫停和再繼續是由yie...
python python環境配置
python 3 教程 國內源 清華 https 阿里雲 http 中國科技大學 https 華中理工大學 http 山東理工大學 http 豆瓣 http 公升級 pip 到最新的版本 10.0 0 後進行配置 安裝django pip install django或 命令 yum install...