OS模塊提供了很多與操作系統(tǒng)進(jìn)行交互的函數(shù),比如常見(jiàn)的使用函數(shù)有獲取當(dāng)前工作目錄:os.getcwd();修改當(dāng)前工作目錄:os.chdir(),在系統(tǒng)執(zhí)行command命令:os.system()。既然是對(duì)操作系統(tǒng)的交互,操作系統(tǒng)常見(jiàn)的就有多種,比如unix和windows的。OS模塊里有些函數(shù)就是只有unix能使用,比如返回父進(jìn)程的進(jìn)程id:getppid();有些是unix和windows的都能使用,比如:獲取當(dāng)前進(jìn)程id:getpid()。這些在官方文檔都有說(shuō)明,如下:
os.getpid()
Returnthecurrentprocessid.
Availability:Unix,Windows.
os.getppid()
Returntheparent’sprocessid.
Availability:Unix.
OS模塊確實(shí)實(shí)用性比較強(qiáng),在編寫(xiě)自動(dòng)化測(cè)試腳本的時(shí)候,有時(shí)候也能使用到。就簡(jiǎn)答說(shuō)下我使用過(guò)的應(yīng)用場(chǎng)景吧。有時(shí)候跑自動(dòng)化的時(shí)候,一些配置文件可能需要重新修改,這時(shí)工具遠(yuǎn)程連接到服務(wù)器后,需要讓服務(wù)器自動(dòng)替換文件,再重啟服務(wù),so~~os模塊應(yīng)用上場(chǎng)了。OS模塊主要實(shí)現(xiàn)了以下三大功能:進(jìn)程的管理,操作系統(tǒng)的管理,文件和目錄的管理?;谖募牟僮鳎瑢?shí)際python的bulit-in模塊也有個(gè)open函數(shù),os也有open函數(shù),但是兩者之間是有區(qū)別的,os的open打開(kāi)文檔后,沒(méi)有拿到當(dāng)前文件的對(duì)象,返回的是一個(gè)整型數(shù)值,不便于后面對(duì)文檔的各種操作。而內(nèi)置庫(kù)提供的open函數(shù),返回的是文件的對(duì)象。
如果每天要對(duì)文件和目錄進(jìn)行管理,推薦使用shutil模塊,這個(gè)模塊提供了更多方便的接口對(duì)文件,目錄進(jìn)行管理(復(fù)制文件或者目錄,刪除文件或者目錄)。比如如果要?jiǎng)h除文件,如果繼續(xù)使用os,則os.system('rf-rm/build/executables/installdir'),使用shutil模塊,就簡(jiǎn)單了:shutil.move('/build/executables','installdir')。
文件通配符:glob模塊
glob模塊提供了一個(gè)函數(shù)用于從目錄通配符搜索中生成文件列表。如果,從當(dāng)前目錄中,搜素所有的.PY文件。之前在我不知道glob模塊時(shí),我用的是os.path模塊實(shí)現(xiàn)的。
os.path.splitext(file)[1]=='.py'
現(xiàn)在使用glob模塊,可以更靈活的進(jìn)行處理:
>>>importglob
>>>glob.glob('*.py')
['primes.py','random.py','quote.py']
以上內(nèi)容為大家介紹了python操作系統(tǒng)接口模塊:OS,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。