1、sys的用處和場景python
sys是system的縮寫,用來獲取操做系統和編譯器的一些配置,設置及操做面試
如下幾個方法在工做面試都幾乎是必問的,不少人知其然不知因此然app
如今深刻淺出的實踐並學習下這個工做中必用模塊的一些方法ide
一、sys.argv():學習
sys.argv就是一個從程序外部獲取參數的橋樑,這個「外部」很關鍵, 由於咱們從外部取得的參數能夠是多個編碼
sys.argv其實能夠看做是一個列表,因此才能用[]下標的方式提取其中的元素。 其第一個元素是程序自己,隨後才依次是外部給予的參數spa
如今來經過實踐來了解該方法操作系統
(1)建立一個.py文件,寫入對應腳本blog
(2)打開cmd,拖入.py文件,進行外部傳參操做ip
sys.argv[0]下標爲0的第一參數返回的是程序自己路徑,後邊纔是外部給予的參數
二、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就是你須要的
概念:一、Python程序的標準輸入/輸出/出錯流 定義在sys模塊中
二、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同樣均可以重定向映射寫入其餘文件
四、sys.exit():
廢話很少說,來看python 源文檔
源文檔暴露3個重要基礎知識:
一、sys.exit()有本身的退出碼,參數爲空默認爲0
二、參數能夠爲任何類型,而且僅僅會拋出SystemExit異常
三、參數非0就拋出異常,該異常一般由try / finally 來清除操做
(1)在代碼內添加sys.exit()代碼
(2)cmd從外部執行該腳步並傳參,會發現再也不接受第二個參數