在某種功能被大量使用的時候,我們應(yīng)該考慮寫一個腳本封裝好,以便重復(fù)調(diào)用。但如果頻繁的修改某幾個參數(shù)會十分麻煩,那么讀取命令行參數(shù)作為腳本運行的參數(shù),是很重要的。
Python中讀取命令行參數(shù)只需要使用sys.argv即可。
python main.py -t Testing
這樣一條命令,sys.argv的值為["main.py", "-t", "Testing"]。
事實上,sys.argv[0]的值始終是調(diào)用的腳本名。所以我們解析命令行參數(shù)只需要解析sys.argv[1:]即可。
getopt模塊
這是一個十分簡單易上手的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ù)的返回值分兩個:
- 返回的是類似于
[("-t", "value"), ("h", "")]的列表。其中包含參數(shù)與值的二元組,如果該參數(shù)不帶值,則第二項為空。 - 返回的是沒有匹配到的參數(shù)。譬如上面的代碼解析這條命令
python main.py -t test fuck,args的值就是["fuck",]。
解析完之后,怎么用,就看自己發(fā)揮了。
有一個使用命令行參數(shù)批量修改文件名或后綴名的腳本在我的Github。