14.5 執行其他(非python)程式
14.5.1 os.system()
>>> import os
>>> result = os.system('ipconfig')
>>> print result
0
system()是乙個非常簡單的函式,接收字串形式的系統命令並執行它。
當執行命令的時候,python的執行是掛起的。當我們執行完成之後,將會以system()的返回值形式給出退出狀態,python的執行也會繼續。
通過退出狀態顯示成功或失敗而不是通過輸入和/或輸出通訊。通常的約定是利用退出狀態,0表示成功,非0表示其他型別的錯誤。
14.5.2 os.popen()
>>> import os
>>> f = os.popen('ipconfig')
>>> data = f.readlines()
>>> for d in data:
... print d
...
windows ip configuration
ethernet adapter local area connection:
connection-specific dns suffix . : cn.kodak.com
ip address. . . . . . . . . . . . : 150.245.167.42
subnet mask . . . . . . . . . . . : 255.255.255.0
default gateway . . . . . . . . . : 150.245.167.254
>>>
popen()函式是檔案物件和system()函式的結合。它可以建立乙個指向那個程式的單向連線,然後像訪問檔案那樣訪問這個程式。如果程式要求輸入,那麼你要用'w'模式寫入那個命令來呼叫popen()。你發給程式的資料會通過標準輸入接收到。那麼當它寫入標準輸出的時候,你就可以通過類檔案控制代碼使用熟悉的file物件read*()方法來讀取輸入。
14.5.3 os.fork()、os.exec*()、os.wait*()
ret = os.fork() #產生兩個程序,都返回
if ret ==0: #子程序返回的pid是0
child_suite #子程序的**
else: #父程序返回是子程序的pid
parent_suite #父程序的**
fork()採用成為程序的單一執行流程控制,如果你喜歡的話,可稱之為建立「岔路口」。
呼叫fork()的原始程序稱為父程序,而作為該呼叫結果新建立的程序則稱為子程序。當子程序返回的時候,其返回值永遠是0;當父程序返回時,其返回值永遠是子程序的程序識別符號(又稱程序id,
第14章 執行環境 1
14.1 可呼叫物件 python有4種可呼叫物件 函式 方法 類以及一些類的例項。記住這些物件的任何引用或者別名都是可呼叫的。14.1.1 函式 內建函式 bif 使用c c 寫的,編譯過後放入python直譯器,然後把它們作為第一 內建 命名空間的一部分載入進系統。這些函式在 builtin 模...
第14章 執行環境 5
14.6 受限執行 rexec 第乙個模組允許沙盒 sandbox 中的執行 修改內建物件。bastion 第二個模組用來過濾屬性和包裝你的類。14.7 結束執行 14.7.1 sys.exit and systemexit sys.exit 的語法為 當呼叫sys.exit 時,就會引發syste...
第14章 陣列
1 定義 相同的名稱和型別的變數的集合 陣列通常比較大,為了節省記憶體,c 規定陣列在程式中只能有乙個原本,沒有副本 陣列中的變數叫陣列元素 int a 10 陣列的型別 陣列的名稱 陣列的下標 2 陣列下標越界 3 陣列的初始化 1 陣列的部分初始化 int array 20 2 int arra...