python的sys.args使用


一、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文件的時候傳入的參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM