国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python解析命令行讀取參數--argparse模塊使用方法

2020-02-22 22:57:55
字體:
來源:轉載
供稿:網友

在多個文件或者不同語言協同的項目中,python腳本經常需要從命令行直接讀取參數。萬能的python就自帶了argprase包使得這一工作變得簡單而規范。PS:optparse包是類似的功能,只不過寫起來更麻煩一些。

如果腳本很簡單或臨時使用,沒有多個復雜的參數選項,可以直接利用sys.argv將腳本后的參數依次讀取(讀進來的默認是字符串格式)。比如如下名為test.py的腳本:

import sysprint "Input argument is %s" %(sys.argv[0])

在shell腳本中運行python test.py help可以得到Input argument is help的結果。

1) 一般形式

但是大多數情況下,腳本很可能需要多個參數,而且每次參數的類型用處各不相同,那么這個時候在參數前添加標簽表明參數的類型和用途便十分有用,而利用argparse模塊可以很方便得實現這一目的。

同樣用名為test.py的腳本舉個栗子:

import argparseparser = argparse.ArgumentParser(description="your script description")      # description參數可以用于插入描述腳本用途的信息,可以為空parser.add_argument('--verbose', '-v', action='store_true', help='verbose mode')  # 添加--verbose標簽,標簽別名可以為-v,這里action的意思是當讀取的參數中出現--verbose/-v的時候                                          # 參數字典的verbose建對應的值為True,而help參數用于描述--verbose參數的用途或意義。args = parser.parse_args()                             # 將變量以標簽-值的字典形式存入args字典if args.verbose:  print "Verbose mode on!"else:  print "Verbose mode off!"

運行python test.py后面跟了--verbose/-v的時候會輸出前者,如果什么都沒有會輸出后者。如果輸入了--verbose/-v以外的參數則會報錯:unrecognized arguments
稍微提一下,action參數表示值賦予鍵的方式,這里用到的是bool類型;如果是'count'表示將--verbose標簽出現的次數作為verbose的值;'append'表示將每次出現的該便簽后的值都存入同一個數組再賦值。(嘛,一般后面兩種用的比較少就不多說了)
PS:--help標簽在使用argparse模塊時會自動創建,因此一般情況不需要我們主動定義幫助信息。

$ python test.py --helpusage: test.py [-h] [--verbose]your script descriptionoptional arguments:  -h, --help    show this help message and exit  --verbose, -v   verbose mode 

2) 必需參數

這種模式用于確保某些必需的參數有輸入。

parser.add_argument('--verbose', required=True, type=int)

required標簽就是說--verbose參數是必需的,并且類型為int,輸入別的類型會報錯。

3)位置參數(positional arguments)

位置參數與sys.argv調用比較像,參數沒有顯式的--xxx或者-xxx標簽,因此調用屬性也與sys.argv相同。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 于都县| 岑巩县| 日照市| 阳谷县| 潜山县| 永年县| 姚安县| 濮阳县| 荔波县| 左贡县| 新源县| 昌平区| 龙里县| 井冈山市| 项城市| 内乡县| 名山县| 江川县| 潞西市| 抚宁县| 泰和县| 县级市| 徐水县| 普宁市| 临海市| 天全县| 盐源县| 区。| 隆德县| 长白| 瑞丽市| 华蓥市| 永兴县| 洪江市| 新泰市| 龙口市| 雷州市| 玉门市| 盱眙县| 苏尼特右旗| 益阳市|