您好,登錄后才能下訂單哦!
一、sys的用處和場景
sys是system的縮寫,用來獲取操作系統和編譯器的一些配置,設置及操作
以下幾個方法在工作面試都幾乎是必問的,很多人知其然不知所以然
現在深入淺出的實踐并學習下這個工作中必用模塊的一些方法
1、sys.argv():
sys.argv就是一個從程序外部獲取參數的橋梁,這個“外部”很關鍵, 因為我們從外部取得的參數可以是多個
sys.argv其實可以看作是一個列表,所以才能用[]下標的方式提取其中的元素。 其第一個元素是程序本身,隨后才依次是外部給予的參數
現在來通過實踐來了解該方法
(1)創建一個.py文件,寫入對應腳本
(2)打開cmd,拖入.py文件,進行外部傳參操作
sys.argv[0]下標為0的第一參數返回的是程序本身路徑,后邊才是外部給予的參數
2、sys.path工作中必用的方法
簡介:sys.path是對 Python 解釋器的系統環境參數的操作,動態的改變 Python 解釋器搜索路徑(劃重點)
sys.path會返回一個路徑列表,sys.path[0]表示的是當前腳本運行目錄
牢記知識點:python的兩種加載py文件方式,sys.path[0]產生的值會有差異,注意返回列表的第一個值,在工作中注意腳本運行環境,這是個坑
方式一:直接運行代碼
方式二:作為模塊腳本來運行
牢記知識點:在工作中,我們導入模塊程序會在當前目錄下去搜尋我們想要的模塊,但我們時常要import導入引用第三方模塊,sys.path可以自定義模塊路徑直接調用外部py文件,以便調用
假設一個第三方demo.py文件臨時存放在E盤,它的功能就是打印輸出 helloworld
sys.path.append("文件路徑") 直接指向搜尋路徑
直接導入 xxx.py 即可
3 、sys.stdin、sys.stdout、sys.stderr
概念:這三個方法都是文件屬性,對應的方法可以讀、寫、創建文件及編碼操作
如果需要更好的控制輸出,而print不能滿足需求,sys.stdout,sys.stdin,sys.stderr就是你需要的
概念:1、Python程序的標準輸入/輸出/出錯流 定義在sys模塊中
2、python啟動時自動與Shell環境中的標準輸入,輸出,出錯 關聯
sys.stdin:所有交互式輸入,類似input的方法
sys.stdin.readline 和input的區別
可以看到sys.stdin.readline()獲取全部的標準輸入包括換行符,在使用該方法時使用strip方法去掉換行符
name = sys.stdin.readline().strip('\n')
牢記知識點:sys.stdin.readline()的優勢
看上去sys.stdin.readline() 還不如input() 好用,它有一個input沒有的優勢,該方法可以直接限制輸出的字節長度,輸出的字節長度不會超過給定參數,這是在開發中較為常用的功能之一。無錫做人流多少錢 http://www.ytsg029.com/
sys.stdout:標準輸出流
牢記知識點:sys.stdout:print(obj)其實就是調用sys.stdout.write(obj+’\n’),但sys.stdout涉及到一個重定向的功能
print把字符打印在屏幕上是通過sys.stdout的默認輸出流,sys.stdout默認映射到打開腳本的窗口,我們可以通過修改sys.stdout的映射關系來改變print的輸出位置,方法如下:
后續所有的print輸入都會寫入到 test.txt內,我們同時想要恢復怎么辦,方法如下:
sys.stderr:返回錯誤的信息,python 程序內報錯信息都基于該方法如圖紅色報錯
牢記知識點:該方法與sys.stdout一樣都可以重定向映射寫入其他文件
4、sys.exit():
廢話不多說,來看python 源文檔
源文檔暴露3個重要基礎知識:
1、sys.exit()有自己的退出碼,參數為空默認為0
2、參數可以為任何類型,并且僅僅會拋出SystemExit異常
3、參數非0就拋出異常,該異常通常由try / finally 來清除操作
(1)在代碼內添加sys.exit()代碼
(2)cmd從外部執行該腳步并傳參,會發現不再接受第二個參數
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。