欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

subprocess源碼解讀

subprocess模塊源碼介紹

十載的云龍網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整云龍建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“云龍網(wǎng)站設(shè)計(jì)”,“云龍網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

  • 介紹

    subprocess生成新的進(jìn)程,連接input/output管道,并獲取返回碼.

  • 常用函數(shù)
    subprocess.run()執(zhí)行指定命令完成并返回一個(gè)包含執(zhí)行結(jié)果的CompletedProcess類的實(shí)例。.
    call() 執(zhí)行指定的命令,返回命令執(zhí)行狀態(tài)
    check_call() 執(zhí)行指定的命令,如果執(zhí)行成功則返回狀態(tài)碼,否則拋出異常
    check_output() 執(zhí)行指定的命令,如果執(zhí)行狀態(tài)碼為0則返回命令執(zhí)行結(jié)果,否則拋出異常
    getoutput(cmd) 接收字符串格式的命令,執(zhí)行命令并返回執(zhí)行結(jié)果
    getstatusoutput(cmd) 執(zhí)行cmd命令,返回一個(gè)元組(命令執(zhí)行狀態(tài),命令執(zhí)行結(jié)果輸出)
  • 參數(shù)說明

    • args: 執(zhí)行的shell命令(字符串序列),shell參數(shù)值應(yīng)該為True.
    • shell: shell為True,指定命令通過shell執(zhí)行.
    • check: 為True,且執(zhí)行命令的進(jìn)程以非0狀態(tài)碼退出,則會(huì)拋出一個(gè)CalledProcessError的異常.
    • stdout,stderr:
    • run() 函數(shù)不捕獲命令執(zhí)行結(jié)果的正常和錯(cuò)誤輸出.向獲取這些內(nèi)容傳遞subprocess.PIPE,然后可以通過返回的CompletedProcess類實(shí)例的stdout和stderr屬性或捕獲相應(yīng)的內(nèi)容;
    • call()和check_call()函數(shù)返回的是命令執(zhí)行狀態(tài)碼.
    • check_output() 返回執(zhí)行命令結(jié)果.在結(jié)果中捕獲錯(cuò)誤信息,可以執(zhí)行stderr=subprocess.STDOUT。
    • input: 該參數(shù)值是字節(jié)序列.
    • universal_newlines: 影響的是輸入與輸出的數(shù)據(jù)格式.
  • subprocess.CompletedProcess類介紹

    表示的是一個(gè)已結(jié)束進(jìn)程的狀態(tài)信息.包含屬性如下:

    • args: 加載該進(jìn)程的參數(shù).
    • returncode 子進(jìn)程的退出狀態(tài)碼.
    • stdout: 從子進(jìn)程捕獲的stdout.一個(gè)字節(jié)序列. 指定universal_newlines=True,則該屬性值是一個(gè)字符串.
    • stderr: 從子進(jìn)程捕獲的stderr。值是一個(gè)字節(jié)序列或一個(gè)字符串。
    • check_returncode(): 如果returncode是一個(gè)非0值,則該方法會(huì)拋出一個(gè)CalledProcessError異常。.
  • 示例

    • run()
      
      In [2]: subprocess.run(["ls","-l"])
      -rw-r--r-- 1 liyuanjie liyuanjie 1350 12月 15 18:33 wireshark.md
      Out[2]: CompletedProcess(args=['ls', '-l'], returncode=0)

    In [3]: subprocess.run(["ls","-l","/dev/null"],stdout=subprocess.PIPE)
    Out[3]: CompletedProcess(args=['ls', '-l', '/dev/null'], returncode=0, stdout=b'
    crw-rw-rw- 1 root root 1, 3 12\xe6\x9c\x88 15 07:51 /dev/null\n')

    
    - call()
    

    In [4]: subprocess.call(['ls','-l'])
    In [5]: subprocess.call('ls -l',shell=True)

    In [6]: subprocess.call(['ls','-l'],stdout=subprocess.DEVNULL)
    Out[6]: 0

    In [7]: subprocess.call(['ls','-l','/services'])

    
    - check_call()
    

    In [9]: subprocess.check_call(['ls','-l'])
    In [10]: subprocess.check_call('ls -l',shell=True)

    In [11]: subprocess.check_call('ls -l /services',shell=True)

    
    - check_output()
    

    In [12]: ret = subprocess.check_output(['ls','-l'])
    In [13]: print(ret) 返回的是字節(jié)序列.

    In [14]: ret = subprocess.check_output(['ls','-l'],universal_newlines=True)
    In [15]: print(ret) 返回的是字符串.

    
    - getoutput()與getstatusoutput()
    

    In [16]: ret = subprocess.getoutput('ls -l')
    In [17]: print(ret)

    正確情況下:
    In [18]: retcode,output = subprocess.getstatusoutput('ls -l')
    In [19]: print(retcode)
    0
    In [20]: print(output)

    錯(cuò)誤情況下:
    In [21]: retcode,output = subprocess.getstatusoutput('ls -l /test')
    In [22]: print(retcode)
    2

    In [23]: print(output)
    ls: cannot access '/test': No such file or directory

subprocess.Popen介紹

該類用于在一個(gè)新的進(jìn)程中執(zhí)行一個(gè)子程序.由于subprocess模塊底層的進(jìn)程創(chuàng)建和管理是由Popen類來處理的. 可以通過subprocess.Popen類提供的靈活的api來完成.

  • Popen的構(gòu)造函數(shù)

    參數(shù)說明

    • args: shell命令.
    • bufsize: 指定緩存策略,0表示不緩沖,1表示行緩沖.負(fù)數(shù) 表示使用系統(tǒng)默認(rèn)緩沖策略。
    • stdin,stdout,stderr: 分別表示程序標(biāo)準(zhǔn)輸入,輸出,錯(cuò)誤句柄。
    • preexec_fn: 用于指定一個(gè)將在子進(jìn)程運(yùn)行之前被調(diào)用的可執(zhí)行對象.
    • close_fds: 值為True時(shí),所有文件描述符都將在子進(jìn)程執(zhí)行前關(guān)閉.
    • shell: 標(biāo)識(shí)是否使用shell作為要執(zhí)行的程序.
    • cwd: 該函數(shù)會(huì)在執(zhí)行這個(gè)子進(jìn)程之前改變當(dāng)前工作目錄.
    • env: 用于指定子進(jìn)程的環(huán)境變量.
    • universal_newlines為True時(shí),則該文件對象的stdin,stdout和stderr將會(huì)作為文本流被打開,否則他們將會(huì)被作為二進(jìn)制流被打開。
  • Popen類的實(shí)例可調(diào)用的方法

    Popen.poll()檢查命令是否已經(jīng)執(zhí)行結(jié)束.
    wait(timeout=None) 等待子進(jìn)程結(jié)束,返回狀態(tài)碼.
    communicate() 與進(jìn)程進(jìn)行交互.
    send_signal(signal) 發(fā)送指定的信號給這個(gè)子進(jìn)程
    terminate() 停止該子進(jìn)程.
    kill() 殺死該子進(jìn)程.
  • 示例

    In [25]: p = subprocess.Popen('df -hT',stdout=subprocess.PIPE,shell=True)
    In [26]: print(p.stdout.read())
    
    In [2]: p1 = subprocess.Popen(['df','-Th'],stdout=subprocess.PIPE)
    In [3]: p2 = subprocess.Popen(['grep','dev'],stdin=p1.stdout,stdout=subprocess.PIPE)
    
    In [4]: out,err = p2.communicate()
    In [5]: print(out)

當(dāng)前題目:subprocess源碼解讀
轉(zhuǎn)載來源:http://aaarwkj.com/article46/jeegeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站收錄、企業(yè)網(wǎng)站制作、App開發(fā)、網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
色噜噜人妻av中文字幕| 欧美日韩国产看片一区二区| 国产精品免费视频一区二区三区| 蜜桃视频在线观看视频免费| 国产老熟女高潮一区二区| 亚洲免费一级黄色录像片| 国内激情自拍偷拍视频| 禁止18黄色免费网站| 蜜臀人妻久久一区二区三| 日韩精品国产专区一区| 白嫩少妇情久久密月久久| 日本黄色三级三级三级| 国产激情视频在线观看你懂的 | 日本毛茸茸的丰满熟妇| 欧美黄色成人免费网站| 韩国福利短片在线观看| 亚洲一区二区婷婷久久| 亚洲美女av一区二区三区| 日韩中文字幕在线有码| 亚洲欧洲久久激情久av| 99精品国产中文字幕| 人妻少妇中文字幕一区| 国内精品人妻中文字幕| 成人欧美黑人一区二区| 一本久久综合亚洲鲁鲁五月天| 日韩一区二区高清看片| 欧美曰韩国内精品中文| 加勒比av免费在线播放| 亚洲综合成人av在线| 亚洲av二区三区成人| 亚洲日本日本午夜精品| 国产我不卡在线观看免费| 夜福利国产视频大屁股| 国产性色精品一区二区| 欧美丰满老妇性猛交| 国产精品盗摄一区二区三区 | 一区二区三区日韩欧美在线| 国产精品一区二区污网站| 国产夫妻性生活视频播放| 久久精品中文字幕人妻| 欧美日韩亚洲精品瑜伽裤|