在某種功能被大量使用的時(shí)候玻褪,我們應(yīng)該考慮寫一個(gè)腳本封裝好件缸,以便重復(fù)調(diào)用屏轰。但如果頻繁的修改某幾個(gè)參數(shù)會十分麻煩颊郎,那么讀取命令行參數(shù)作為腳本運(yùn)行的參數(shù),是很重要的霎苗。
Python中讀取命令行參數(shù)只需要使用sys.argv
即可姆吭。
python main.py -t Testing
這樣一條命令,sys.argv
的值為["main.py", "-t", "Testing"]
叨粘。
事實(shí)上猾编,sys.argv[0]
的值始終是調(diào)用的腳本名。所以我們解析命令行參數(shù)只需要解析sys.argv[1:]
即可升敲。
getopt模塊
這是一個(gè)十分簡單易上手的Python標(biāo)準(zhǔn)庫模塊答倡。只需要類似于如下的一行代碼就可以解析命令行參數(shù),而不用我們手動匹配驴党。
opts, args = getopt.getopt(sys.argv[1:], "ht:a", ["help", "Test="])
如上代碼瘪撇,指定了如果有-t
或者--Test
參數(shù),它們應(yīng)該帶有值。指定方式就是:
和=
也指定了如果有-h
倔既,-a
恕曲,--help
參數(shù),它們不應(yīng)該帶有值渤涌。
getopt.getopt()
函數(shù)的返回值分兩個(gè):
- 返回的是類似于
[("-t", "value"), ("h", "")]
的列表佩谣。其中包含參數(shù)與值的二元組,如果該參數(shù)不帶值实蓬,則第二項(xiàng)為空茸俭。 - 返回的是沒有匹配到的參數(shù)。譬如上面的代碼解析這條命令
python main.py -t test fuck
安皱,args的值就是["fuck",]
调鬓。
解析完之后,怎么用酌伊,就看自己發(fā)揮了腾窝。
有一個(gè)使用命令行參數(shù)批量修改文件名或后綴名的腳本在我的Github。