Python:使用命令行參數(shù)

在某種功能被大量使用的時候,我們應(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ù)的返回值分兩個:

  1. 返回的是類似于[("-t", "value"), ("h", "")]的列表。其中包含參數(shù)與值的二元組,如果該參數(shù)不帶值,則第二項為空。
  2. 返回的是沒有匹配到的參數(shù)。譬如上面的代碼解析這條命令python main.py -t test fuck,args的值就是["fuck",]。

解析完之后,怎么用,就看自己發(fā)揮了。

有一個使用命令行參數(shù)批量修改文件名或后綴名的腳本在我的Github

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 對CLI程序來說,參數(shù)解析大概是一個首要的問題。 當(dāng)然,也有例外。 無參數(shù)腳本 許多常用命令,不需要輸入?yún)?shù),就可...
    匿蟒閱讀 10,326評論 1 5
  • 我們在寫一個可變性比較大的腳本時候,很多情況下我們需要傳入很多個不同的參數(shù),就像我們在終端輸入pip --help...
    迷路的南南見鳥閱讀 1,923評論 0 0
  • getopt:和C中的getopt()等價。optparse:2.7后已不推薦使用。argparse:基于optp...
    顧慎為閱讀 8,813評論 1 10
  • 基礎(chǔ)語法,后附福利。 嘻嘻,剛開始學(xué)Python,還是小白一只。如果我的文章有幸被大神看到,請批評指正哦。感謝??!...
    turbotx閱讀 621評論 0 2
  • 之前一直在寫關(guān)于python的項目,大部分工具都想運行在命令行下面怎么辦呢?自行谷歌了一下,看到有一個getopt...
    吃雞蛋的肉閱讀 41,732評論 7 46

友情鏈接更多精彩內(nèi)容