python引入subprocess模組來管理子程序,以取代一些舊模組的方法:如 os.system、os.spawn*、os.popen*、popen2.*、commands.*不但可以呼叫外部的命令作為子程序,而且可以連線到子程序的input/output/error管道,獲取相關的返回資訊。
subprocess模組中只定義了乙個類: popen。可以使用popen來建立程序,並與程序進行複雜的互動。
subprocess.call()
父程序等待子程序完成
返回退出資訊(returncode,相當於linux exit code)
subprocess.check_call()
父程序等待子程序完成
返回0檢查退出資訊,如果returncode不為0,則舉出錯誤subprocess.calledprocesserror,該物件包含有returncode屬性,可用try…except…來檢查
subprocess.check_output()
父程序等待子程序完成
返回子程序向標準輸出的輸出結果
檢查退出資訊,如果returncode不為0,則舉出錯誤subprocess.calledprocesserror,該物件包含有returncode屬性和output屬性,output屬性為標準輸出的輸出結果,可用try…except…來檢查。
>>> import subprocess>>> retcode = subprocess.call(["ls", "-l"])
#和shell中命令ls -a顯示結果一樣
>>> print retcode
0
popen的方法:
popen.poll()
用於檢查子程序是否已經結束。設定並返回returncode屬性。
popen.wait()
等待子程序結束。設定並返回returncode屬性。
popen.communicate(input=none)
與子程序進行互動。向stdin傳送資料,或從stdout和stderr中讀取資料。可選引數input指定傳送到子程序的引數。communicate()返回乙個元組:(stdoutdata, stderrdata)。注意:如果希望通過程序的stdin向其傳送資料,在建立popen物件的時候,引數stdin必須被設定為pipe。同樣,如果希望從stdout和stderr獲取資料,必須將stdout和stderr設定為pipe。
popen.send_signal(signal)
向子程序傳送訊號。
popen.terminate()
停止(stop)子程序。在windows平台下,該方法將呼叫windows api terminateprocess()來結束子程序。
popen.kill()
殺死子程序。
popen.stdin
如果在建立popen物件是,引數stdin被設定為pipe,popen.stdin將返回乙個檔案物件用於策子程序傳送指令。否則返回none。
popen.stdout
如果在建立popen物件是,引數stdout被設定為pipe,popen.stdout將返回乙個檔案物件用於策子程序傳送指令。否則返回none。
popen.stderr
如果在建立popen物件是,引數stdout被設定為pipe,popen.stdout將返回乙個檔案物件用於策子程序傳送指令。否則返回none。
popen.pid
獲取子程序的程序id。
popen.returncode
獲取程序的返回值。如果程序還沒有結束,返回none。
python常用內建模組(五)
requests 一 collections 是python內建的乙個集合模組,提供了許多有用的集合類。namedtuple,是乙個函式,用來建立乙個自定義的tuple物件,格式 namedtuple 名稱 屬性list 例如 建立乙個座標為 1,2 的點 from collections impo...
PYTHON 之 常用模組
使用需要先導入 import calendar呼叫例子 calendar 獲取一年的日曆字串 引數 w 每個日期之間的間隔字元數 l 每週所占用的行數 c 每個月之間的間隔字元數 cal calendar.calendar 2017 print type cal print cal cal cale...
Python之常用模組
time模組 時間表示形式 1 時間戳 timestamp 通常來說,時間戳表示的是從1970年1月1日00 00 00開始按秒計算的偏移量。我們執行 type time.time 返回的是float型別。2 格式化的時間字串 format string 1988 09 29 3 元組 struct...