sys.argv[]說白了就是一個(gè)從程序外部獲取參數(shù)的橋梁,這個(gè)“外部”很關(guān)鍵庄拇,所以那些試圖從代碼來說明它作用的解釋一直沒看明白癞尚。因?yàn)槲覀儚耐獠咳〉玫膮?shù)可以是多個(gè),所以獲得的是一個(gè)列表(list)惋耙,也就是說sys.argv其實(shí)可以看作是一個(gè)列表捣炬,所以才能用[]提取其中的元素熊昌。其第一個(gè)元素是程序本身,隨后才依次是外部給予的參數(shù)湿酸。
下面我們通過一個(gè)極簡單的test.py程序的運(yùn)行結(jié)果來說明它的用法婿屹。
#test.py
import sys
a=sys.argv[0]
print(a)
將test.py保存在c盤的根目錄下。
在程序中找到 ‘運(yùn)行’->點(diǎn)擊->輸入"cmd"->回車鍵 ? 進(jìn)入控制臺(tái)命令窗口(如下圖)稿械,先輸入cd c:\?? (作用是將命令路徑改到c盤根目錄)选泻,然后輸入test.py運(yùn)行我們剛剛寫的程序:
得到的結(jié)果是C:\test.py,這就是0指代碼(即此.py程序)本身的意思美莫。
然后我們將代碼中0改為1 :
a=sys.argv[1]
保存后页眯,再從控制臺(tái)窗口運(yùn)行,這次我們加上一個(gè)參數(shù)厢呵,輸入:test.py what
得到的結(jié)果就是我們輸入的參數(shù)what窝撵,看到這里你是不是開始明白了呢。
那我們?cè)侔汛a修改一下:
a=sys.argv[2:]
保存后襟铭,再從控制臺(tái)窗臺(tái)運(yùn)行程序碌奉,這次多加幾個(gè)參數(shù),以空格隔開:
test.py a b c d e f
得到的結(jié)果為[‘b’, ’c’, ’d’, ’e’, ’f’]
應(yīng)該大徹大悟了吧寒砖。Sys.argv[ ]其實(shí)就是一個(gè)列表赐劣,里邊的項(xiàng)為用戶輸入的參數(shù),關(guān)鍵就是要明白這參數(shù)是從程序外部輸入的哩都,而非代碼本身的什么地方魁兼,要想看到它的效果就應(yīng)該將程序保存了,從外部來運(yùn)行程序并給出參數(shù)漠嵌。