python中的shell是什么
我們?cè)诮o系統(tǒng)下達(dá)命令時(shí),可以通過(guò)shell的方法來(lái)實(shí)現(xiàn),也就是我們常說(shuō)的命令行。比較特殊的是,它接受的是鍵盤(pán)輸入的命令。本篇在對(duì)shell進(jìn)行介紹的同時(shí),還帶來(lái)了兩種執(zhí)行shell命令的方法,一起來(lái)看看吧。
1、說(shuō)明
當(dāng)談到命令行時(shí),我們實(shí)際上指的是shell。
shell是一個(gè)接受由鍵盤(pán)輸入的命令,并將其傳遞給操作系統(tǒng)來(lái)執(zhí)行的程序。
2、執(zhí)行方法
(1)commands模塊
commands對(duì)Python的os.popen()進(jìn)行了封裝,使用SHELL命令字符串作為其參數(shù),返回命令的結(jié)果數(shù)據(jù)以及命令執(zhí)行的狀態(tài);該命令目前已經(jīng)廢棄,被subprocess所替代。
importcommands
a,b=commands.getstatusoutput('ls')
a是退出狀態(tài)
b是輸出的結(jié)果。
>>>importcommands
>>>a,b=commands.getstatusoutput('ls')
>>>printa
0
>>>printb
anaconda-ks.cfg
install.log
install.log.syslog
(2)subprocess模塊
Python目前已經(jīng)廢棄了os.system,os.spawn*,os.popen*,popen2.*,commands.*來(lái)執(zhí)行其他語(yǔ)言的命令,subprocesss是被推薦的方法;
subprocess允許你能創(chuàng)建很多子進(jìn)程,創(chuàng)建的時(shí)候能指定子進(jìn)程和子進(jìn)程的輸入、輸出、錯(cuò)誤輸出管道,執(zhí)行后能獲取輸出結(jié)果和執(zhí)行狀態(tài)。
importsubprocess
subprocess.call(command,shell=True)會(huì)直接打印出結(jié)果。
subprocess.Popen(command,shell=True)也可以是subprocess.Popen(command,stdout=subprocess.PIPE,shell=True)這樣就可以輸出結(jié)果了。
以上就是python中shell的有關(guān)介紹,大家可以就兩種命令行方法進(jìn)行嘗試,希望對(duì)初學(xué)python的人有所幫助。更多Python學(xué)習(xí)推薦: