最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python面試之os.system()和os.popen()的區(qū)別詳析

 更新時(shí)間:2022年06月09日 11:25:39   作者:測(cè)試開(kāi)發(fā)Kevin  
Python調(diào)用Shell,有兩種方法:os.system(cmd)或os.popen(cmd)腳本執(zhí)行過(guò)程中的輸出內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于Python面試之os.system()和os.popen()區(qū)別的相關(guān)資料,需要的朋友可以參考下

os.system()和os.popen()概述

大家搞python與操作系統(tǒng)交互時(shí),必須掌握的兩個(gè)方法就是os.system()和os.popen(),也是在相關(guān)技術(shù)領(lǐng)域面試中必問(wèn)的題目!本文就對(duì)這兩個(gè)命令進(jìn)行詳細(xì)介紹,os.system()和os.popen()都可以執(zhí)行shell命令,但是他們還是有一定的區(qū)別的。

話不多說(shuō),先拿實(shí)例說(shuō)事兒!

目錄/opt/scripts/test 中包括文件:ClassDemo2.groovy ClassDemo.groovy Demo3.groovy pyscript.py

我們執(zhí)行os.system命令:

>>> os.system('cd /opt/scripts/test;ls')
ClassDemo2.groovy ClassDemo.groovy Demo3.groovy pyscript.py
0

這里的0表示執(zhí)行成功

接下來(lái)再看os.popen命令:

>>> os.popen('cd /opt/scripts/test;ls')
<open file 'cd /opt/scripts/test;ls', mode 'r' at 0x7fa7dd7d1660>

如果想看到具體的值,可以這樣使用

>>> f=os.popen('cd /opt/scripts/test;ls')
>>> print(f.readlines())
['ClassDemo2.groovy\n', 'ClassDemo.groovy\n', 'Demo3.groovy\n', ,'pyscript.py\n']

注意如果連續(xù)執(zhí)行多條語(yǔ)句可以使用“;”分割,實(shí)例中的cd /opt/scripts/test;ls 就是相關(guān)應(yīng)用。

具體細(xì)節(jié)如下:

1. 命令被分號(hào)“;”分隔,這些命令會(huì)順序執(zhí)行下去;

2. 命令被“&&”分隔,這些命令會(huì)順序執(zhí)行下去,遇到執(zhí)行錯(cuò)誤的命令停止;

3. 命令被雙豎線“||”分隔,這些命令會(huì)順序執(zhí)行下去,遇到執(zhí)行成功的命令停止,后面的所有命令都將不會(huì)執(zhí)行;

os.system細(xì)節(jié)

os.system方法是os模塊最基礎(chǔ)的方法,其它的方法一般在該方法基礎(chǔ)上封裝完成。返回的是退出狀態(tài)碼。os的system原理是每一條system函數(shù)執(zhí)行時(shí),通過(guò)當(dāng)前 Shell 啟動(dòng)的一個(gè)新的子進(jìn)程或子 Shell 被稱為 SubShell (子 Shell )。子 Shell 會(huì)自動(dòng)繼承父 Shell 的很多環(huán)境,如環(huán)境變量、工作目錄、文件描述符等,但是反之,子 Shell 中的環(huán)境僅在子 Shell 中有效,父 Shell 無(wú)法讀取子 Shell 的環(huán)境。例如,如果在父 shell 里定義全局變量,子 shell 中就可以調(diào)用該變量。但當(dāng)在子 shell 中定義一個(gè)局部變量時(shí),父 shell 是無(wú)法讀取該變量的。

os.popen細(xì)節(jié)

os.popen() 方法用于從一個(gè)命令打開(kāi)一個(gè)管道,返回的是命令的輸出結(jié)果。從這個(gè)命令獲取的值可以繼續(xù)被使用。因?yàn)樗祷匾粋€(gè)文件對(duì)象,可以對(duì)這個(gè)文件對(duì)象進(jìn)行相關(guān)的操作。

popen()方法語(yǔ)法格式:

os.popen(command[, mode[, bufsize]])

參數(shù):

command -- 使用的命令

mode -- 模式權(quán)限可以是 'r'(默認(rèn)) 或 'w'。

bufsize -- 指明了文件需要的緩沖大小:0意味著無(wú)緩沖;1意味著行緩沖;其它正值表示使用參數(shù)大小的緩沖(大概值,以字節(jié)為單位)。負(fù)的bufsize意味著使用系統(tǒng)的默認(rèn)值,一般來(lái)說(shuō),對(duì)于終端設(shè)備,它是行緩沖;對(duì)于其它文件,它是全緩沖。如果沒(méi)有改參數(shù),使用系統(tǒng)的默認(rèn)值。

返回值:

返回一個(gè)文件描述符號(hào)為fd(文件索引)的打開(kāi)的文件對(duì)象

二者使用總結(jié)

如果要直接看到運(yùn)行結(jié)果的話,應(yīng)該使用os.system;如果需要獲取返回值做進(jìn)一步的處理則使用os.popen

到此這篇關(guān)于Python面試之os.system()和os.popen()區(qū)別的文章就介紹到這了,更多相關(guān)Python os.system()和os.popen()區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • opencv+playwright滑動(dòng)驗(yàn)證碼的實(shí)現(xiàn)

    opencv+playwright滑動(dòng)驗(yàn)證碼的實(shí)現(xiàn)

    滑動(dòng)驗(yàn)證碼是常見(jiàn)的驗(yàn)證碼之一,本文主要介紹了opencv+playwright滑動(dòng)驗(yàn)證碼的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Python中的choice()方法使用詳解

    Python中的choice()方法使用詳解

    這篇文章主要介紹了Python中的choice()方法使用詳解,是Python入門(mén)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • python萬(wàn)年歷實(shí)現(xiàn)代碼 含運(yùn)行結(jié)果

    python萬(wàn)年歷實(shí)現(xiàn)代碼 含運(yùn)行結(jié)果

    這篇文章主要為大家詳細(xì)介紹了python萬(wàn)年歷實(shí)現(xiàn)代碼,含運(yùn)行結(jié)果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Python的Asyncore異步Socket模塊及實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的例子

    Python的Asyncore異步Socket模塊及實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的例子

    asyncore模塊是封裝過(guò)的處理socket事件的模塊,采用異步的處理方式,這里我們講來(lái)講解Python的Asyncore異步Socket模塊及實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的例子,需要的朋友可以參考下
    2016-06-06
  • Python 刪除文件每一行的行號(hào)思路解讀

    Python 刪除文件每一行的行號(hào)思路解讀

    有時(shí)候我們需要?jiǎng)h除代碼中的行號(hào),比如在把代碼復(fù)制到記事本中的時(shí)候,前邊的行號(hào)不刪除就沒(méi)辦法運(yùn)行,我們要手動(dòng)刪掉代碼段前的行號(hào),才能運(yùn)行代碼。如果有幾百行,就非常累,非常不爽,所以這種事還是要交給計(jì)算機(jī)去做
    2021-11-11
  • Python實(shí)現(xiàn)的ini文件操作類分享

    Python實(shí)現(xiàn)的ini文件操作類分享

    這篇文章主要介紹了Python實(shí)現(xiàn)的ini文件操作類分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-11-11
  • Python一個(gè)簡(jiǎn)單的通信程序(客戶端 服務(wù)器)

    Python一個(gè)簡(jiǎn)單的通信程序(客戶端 服務(wù)器)

    今天小編就為大家分享一篇關(guān)于Python一個(gè)簡(jiǎn)單的通信程序(客戶端 服務(wù)器),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • python 帶時(shí)區(qū)的日期格式化操作

    python 帶時(shí)區(qū)的日期格式化操作

    這篇文章主要介紹了python 帶時(shí)區(qū)的日期格式化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • python刪除列表元素的三種方法(remove,pop,del)

    python刪除列表元素的三種方法(remove,pop,del)

    這篇文章主要介紹了python刪除列表元素的三種方法(remove,pop,del),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 使用Django和Postgres進(jìn)行全文搜索的實(shí)例代碼

    使用Django和Postgres進(jìn)行全文搜索的實(shí)例代碼

    這篇文章主要介紹了使用Django和Postgres進(jìn)行全文搜索,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02

最新評(píng)論

江油市| 咸宁市| 盈江县| 西畴县| 宿州市| 上饶市| 水富县| 锡林浩特市| 永修县| 肥乡县| 昂仁县| 酒泉市| 九寨沟县| 宁晋县| 闽清县| 海兴县| 江西省| 汕尾市| 财经| 怀安县| 长宁县| 长春市| 沐川县| 湖北省| 抚州市| 富锦市| 连平县| 台中县| 广元市| 东光县| 修水县| 航空| 江达县| 乐安县| 内江市| 二手房| 来安县| 定日县| 太保市| 治多县| 潞城市|