python無法接收命令列引數,應該怎麼辦?小小猿愛嘻嘻2018-06-01 10:15:38

沒有貼圖,這個也不好說。python接受命令列引數的方法有好幾種,這裡我介紹2種比較

簡單的方式,一種是sys。argv,一種是argparse,這兩種方法學起來很快就能掌握,實驗環境Centos7。0+python3。6+XShell5,主要步驟如下:

1。利用sys。argv獲取命令列引數,這種方式常用也簡單,測試程式碼如下,主要是打印出指令碼名和傳入的引數:

python無法接收命令列引數,應該怎麼辦?

儲存指令碼為student。py,退出,開啟終端,在命令列下輸入一下命令“python student。py 181715 張三 24 男 北京市”,程式執行截圖下圖,已經成功打印出引數:

python無法接收命令列引數,應該怎麼辦?

注意,這裡第一個引數是指令碼名,後面的引數透過空格進行區分,看起來很簡單,但是還有不足,不夠靈活,如下圖:

python無法接收命令列引數,應該怎麼辦?

我們希望name後是姓名,age後是年齡,顯然事與願違,這裡就引進了argparse這種方法。

2。利用argparse獲取命令列引數,這個方式能靈活一些。

首先,安裝的話,直接輸入命令“pip install argparse”就行,線上安裝,很快:

python無法接收命令列引數,應該怎麼辦?

主要測試程式碼如下,這裡主要添加了username,password這兩個引數:

python無法接收命令列引數,應該怎麼辦?

儲存指令碼為arg。py,退出到終端,輸入如下命令“python arg。py ——username 小涵 ——password xh__123”,程式執行截圖如下,已經成功打印出這兩個引數:

python無法接收命令列引數,應該怎麼辦?

如果不傳入任何引數,則打印出引數的預設值,如下:

python無法接收命令列引數,應該怎麼辦?

這種方法相對來說能靈活一些,可以在輸入時,指定引數的型別,像int,float,str等,但對於list型別,處理起來可能比較麻煩一些,有時需要手動解析。

至此,這2種簡單的方式就介紹完畢了。可看的出來,這兩種方式都比較簡單,完全可以滿足基本的需求,當然還有許多其他的獲取命令列引數的方法,像getopt模組等,這裡我就不詳細介紹了,感興趣的話,可以到網上搜搜從相關教程,瞭解一下,會快就能掌握。這裡以Linux平臺為例,其實和windows平臺一樣,都可以正常執行,這裡不再演示,希望以上分享的內容能對你有所幫助吧。