溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python技巧之:sys模塊常用方法詳解

發(fā)布時間:2020-07-18 07:09:09 來源:網(wǎng)絡(luò) 閱讀:437 作者:nineteens 欄目:編程語言

  一、sys的用處和場景

  sys是system的縮寫,用來獲取操作系統(tǒng)和編譯器的一些配置,設(shè)置及操作

  以下幾個方法在工作面試都幾乎是必問的,很多人知其然不知所以然

  現(xiàn)在深入淺出的實(shí)踐并學(xué)習(xí)下這個工作中必用模塊的一些方法

  1、sys.argv():

  sys.argv就是一個從程序外部獲取參數(shù)的橋梁,這個“外部”很關(guān)鍵, 因?yàn)槲覀儚耐獠咳〉玫膮?shù)可以是多個

  sys.argv其實(shí)可以看作是一個列表,所以才能用[]下標(biāo)的方式提取其中的元素。 其第一個元素是程序本身,隨后才依次是外部給予的參數(shù)

  現(xiàn)在來通過實(shí)踐來了解該方法

  (1)創(chuàng)建一個.py文件,寫入對應(yīng)腳本

  

python技巧之:sys模塊常用方法詳解


  (2)打開cmd,拖入.py文件,進(jìn)行外部傳參操作

  sys.argv[0]下標(biāo)為0的第一參數(shù)返回的是程序本身路徑,后邊才是外部給予的參數(shù)

  2、sys.path工作中必用的方法

  簡介:sys.path是對 Python 解釋器的系統(tǒng)環(huán)境參數(shù)的操作,動態(tài)的改變 Python 解釋器搜索路徑(劃重點(diǎn))

  sys.path會返回一個路徑列表,sys.path[0]表示的是當(dāng)前腳本運(yùn)行目錄

  牢記知識點(diǎn):python的兩種加載py文件方式,sys.path[0]產(chǎn)生的值會有差異,注意返回列表的第一個值,在工作中注意腳本運(yùn)行環(huán)境,這是個坑

  方式一:直接運(yùn)行代碼

  

python技巧之:sys模塊常用方法詳解


  方式二:作為模塊腳本來運(yùn)行

  

python技巧之:sys模塊常用方法詳解


  牢記知識點(diǎn):在工作中,我們導(dǎo)入模塊程序會在當(dāng)前目錄下去搜尋我們想要的模塊,但我們時常要import導(dǎo)入引用第三方模塊,sys.path可以自定義模塊路徑直接調(diào)用外部py文件,以便調(diào)用

  假設(shè)一個第三方demo.py文件臨時存放在E盤,它的功能就是打印輸出 helloworld

  sys.path.append("文件路徑") 直接指向搜尋路徑

  直接導(dǎo)入 xxx.py 即可

  3 、sys.stdin、sys.stdout、sys.stderr

  概念:這三個方法都是文件屬性,對應(yīng)的方法可以讀、寫、創(chuàng)建文件及編碼操作

  如果需要更好的控制輸出,而print不能滿足需求,sys.stdout,sys.stdin,sys.stderr就是你需要的

  概念:1、Python程序的標(biāo)準(zhǔn)輸入/輸出/出錯流 定義在sys模塊中

  2、python啟動時自動與Shell環(huán)境中的標(biāo)準(zhǔn)輸入,輸出,出錯 關(guān)聯(lián)

  sys.stdin:所有交互式輸入,類似input的方法

  

python技巧之:sys模塊常用方法詳解


  

python技巧之:sys模塊常用方法詳解


  sys.stdin.readline 和input的區(qū)別

  可以看到sys.stdin.readline()獲取全部的標(biāo)準(zhǔn)輸入包括換行符,在使用該方法時使用strip方法去掉換行符

  name = sys.stdin.readline().strip('\n')

  牢記知識點(diǎn):sys.stdin.readline()的優(yōu)勢

  看上去sys.stdin.readline() 還不如input() 好用,它有一個input沒有的優(yōu)勢,該方法可以直接限制輸出的字節(jié)長度,輸出的字節(jié)長度不會超過給定參數(shù),這是在開發(fā)中較為常用的功能之一。無錫做人流多少錢 http://www.ytsg029.com/

  

python技巧之:sys模塊常用方法詳解


  sys.stdout:標(biāo)準(zhǔn)輸出流

  牢記知識點(diǎn):sys.stdout:print(obj)其實(shí)就是調(diào)用sys.stdout.write(obj+’\n’),但sys.stdout涉及到一個重定向的功能

  print把字符打印在屏幕上是通過sys.stdout的默認(rèn)輸出流,sys.stdout默認(rèn)映射到打開腳本的窗口,我們可以通過修改sys.stdout的映射關(guān)系來改變print的輸出位置,方法如下:

  后續(xù)所有的print輸入都會寫入到 test.txt內(nèi),我們同時想要恢復(fù)怎么辦,方法如下:

  sys.stderr:返回錯誤的信息,python 程序內(nèi)報錯信息都基于該方法如圖紅色報錯

  

python技巧之:sys模塊常用方法詳解


  牢記知識點(diǎn):該方法與sys.stdout一樣都可以重定向映射寫入其他文件

  

python技巧之:sys模塊常用方法詳解


  

python技巧之:sys模塊常用方法詳解


  4、sys.exit():

  廢話不多說,來看python 源文檔

  源文檔暴露3個重要基礎(chǔ)知識:

  1、sys.exit()有自己的退出碼,參數(shù)為空默認(rèn)為0

  2、參數(shù)可以為任何類型,并且僅僅會拋出SystemExit異常

  3、參數(shù)非0就拋出異常,該異常通常由try / finally 來清除操作

  (1)在代碼內(nèi)添加sys.exit()代碼

  (2)cmd從外部執(zhí)行該腳步并傳參,會發(fā)現(xiàn)不再接受第二個參數(shù)


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI