python中的shell是什么
我們在給系統(tǒng)下達命令時,可以通過shell的方法來實現(xiàn),也就是我們常說的命令行。比較特殊的是,它接受的是鍵盤輸入的命令。本篇在對shell進行介紹的同時,還帶來了兩種執(zhí)行shell命令的方法,一起來看看吧。
1、說明
當(dāng)談到命令行時,我們實際上指的是shell。
shell是一個接受由鍵盤輸入的命令,并將其傳遞給操作系統(tǒng)來執(zhí)行的程序。
2、執(zhí)行方法
(1)commands模塊
commands對Python的os.popen()進行了封裝,使用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.*來執(zhí)行其他語言的命令,subprocesss是被推薦的方法;
subprocess允許你能創(chuàng)建很多子進程,創(chuàng)建的時候能指定子進程和子進程的輸入、輸出、錯誤輸出管道,執(zhí)行后能獲取輸出結(jié)果和執(zhí)行狀態(tài)。
importsubprocess
subprocess.call(command,shell=True)會直接打印出結(jié)果。
subprocess.Popen(command,shell=True)也可以是subprocess.Popen(command,stdout=subprocess.PIPE,shell=True)這樣就可以輸出結(jié)果了。
以上就是python中shell的有關(guān)介紹,大家可以就兩種命令行方法進行嘗試,希望對初學(xué)python的人有所幫助。更多Python學(xué)習(xí)推薦: