一、sys 模塊
sys是Python的一個「標准庫」,也就是官方出的「模塊」,是「System」的簡寫,封裝了一些系統的信息和接口。
官方的文檔參考:https://docs.python.org/2/library/sys.html
中文版文檔參考:http://xukaizijian.blog.163.com/blog/static/170433119201111625428624/
二、sys.argv介紹和基本使用
「argv」是「argument variable」參數變量的簡寫形式,一般在命令行調用的時候由系統傳遞給程序。這個變量其實是一個List列表,argv[0] 一般是“被調用的腳本文件名或全路徑”,這個與操作系統有關,argv[1]和以后就是傳入的系統命令參數。
其實是一個從程序外部獲取參數的入口,這個“外部”很關鍵,一般我們在命令行中運行。因為我們從外部輸入的參數可以是多個,也就是說sys.argv其實可以看作是一個列表,所以才能用[]提取其中的元素。其第一個元素是程序本身,隨后才依次是外部給予的參數。
下面總結一下:
sys.argv[0]表示代碼本身文件路徑,所以參數從1開始.
sys.argv[1]表示第一個命令行參數
sys.argv[1:]表示從第一個命令行參數到輸入的最后一個命令行參數
sys.argv[1][2:] 表示取第一個命令行參數,但是去掉前兩個字節
三、實例
import sys print(sys.argv) #獲取運行python文件的時候傳入的參數,第1個參數,index是0 #輸出:['D:/A-python學習/python3/python代碼/day10/sys模塊.py'] if len(sys.argv)>1: #如果參數大於1,證明給了參數 if sys.argv[1]=='--help': #如果第2個參數是--help quit('這個python是用來測試的,運行的時候需要使用 python a.py port') #quit表示運行完此句代碼即退出,不繼續運行下面的代碼了 else: #否則傳入的是port並賦值給port port = sys.argv[1] else: #如果沒有傳入參數,則port默認是7878 port = 7878 import flask server = flask.Flask(__name__) @server.route('/') def index(): return '<h1>首頁</h1>' server.run(port=port)
#以上代碼輸出結果是: ['D:/A-python學習/python3/python代碼/day10/sys模塊.py'] * Serving Flask app "sys模塊" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:7878/ (Press CTRL+C to quit)
也可以在pycharm里的Terminal中運行命令
#在Terminal中寫命令,先寫了一個python sys模塊.py --help,回車運行完成后,寫了python sys模塊.py 2345(傳了port) D:\A-python學習\python3\python代碼\day10>python sys模塊.py --help ['sys模塊.py', '--help'] 這個python是用來測試的,運行的時候需要使用 python a.py port D:\A-python學習\python3\python代碼\day10>python sys模塊.py 2345 ['sys模塊.py', '2345'] * Serving Flask app "sys模塊" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:2345/ (Press CTRL+C to quit)
或者在pycharm中選擇填寫參數
sys.argv使用場景如,別人調用你的代碼時,需要別人傳參數(如端口號可以傳使用人自己的端口號,這樣網址的端口號就是他自己的端口號了),根據傳的參數(如help)去執行對應的命令
作用:是獲取到運行python文件的時候傳入的參數