由於是看書自學的python,開始後不久就遇到了這個引入的模塊函數,且一直在IDLE上編輯了後運行,試圖從結果發現它的用途,然而結果一直都是沒結果,也在網上查了許多,但發現這個問題的比較詳細的解釋只有一個版本,大部分都是轉裁和複製的。給的都是簡明python教程上那個一長串代碼的例子,說看了就明白了,可我看得暈頭轉向的仍是沒真正明白,只知道「sys.argv[0]表示代碼自己文件路徑」這點,其實仍是不明其意。後來通過大量努力,多方求教才真正明悟了,謹以記錄和分享,但願能從另外一個角度給同在求索過程當中的同窗一點啓發。python
sys.argv[]說白了就是一個從程序外部獲取參數的橋樑,這個「外部」很關鍵,因此那些試圖從代碼來講明它做用的解釋一直沒看明白。由於咱們從外部取得的參數能夠是多個,因此得到的是一個列表(list),也就是說sys.argv其實能夠看做是一個列表,因此才能用[]提取其中的元素。其第一個元素是程序自己,隨後才依次是外部給予的參數。函數
下面咱們經過一個極簡單的test.py程序的運行結果來講明它的用法。spa
`1 #test.py 2 3 import sys 4 a=sys.argv[0] 5 print(a)` * 1 * 2 * 3 * 4 * 5
將test.py保存在c盤的根目錄下。code
在程序中找到 ‘運行’->點擊->輸入"cmd"->回車鍵 進入控制檯命令窗口(以下圖),先輸入cd c: (做用是將命令路徑改到c盤根目錄),而後輸入test.py運行咱們剛剛寫的程序:blog
獲得的結果是C:test.py,這就是0指代碼(即此.py程序)自己的意思。教程
而後咱們將代碼中0改成1 :圖片
a=sys.argv[1]rem
保存後,再從控制檯窗口運行,此次咱們加上一個參數,輸入:test.py whatcmd
獲得的結果就是咱們輸入的參數what,看到這裏你是否是開始明白了呢。it
那咱們再把代碼修改一下:
a=sys.argv[2:]
保存後,再從控制檯窗臺運行程序,此次多加幾個參數,以空格隔開:
test.py a b c d e f
獲得的結果爲[‘b’, ’c’, ’d’, ’e’, ’f’]
應該大徹大悟了吧。Sys.argv[ ]其實就是一個列表,裏邊的項爲用戶輸入的參數,關鍵就是要明白這參數是從程序外部輸入的,而非代碼自己的什麼地方,要想看到它的效果就應該將程序保存了,從外部來運行程序並給出參數。