其實(shí),研究了好久才研究明白這個(gè)東東障簿,所以先過(guò)來(lái)記錄下盹愚,免得以后忘記了又不知道去哪里哭.... T^T
首先呢,argparse是一個(gè)
模塊站故!
也就是說(shuō)呢杯拐,它要運(yùn)行在命令行下,嗯世蔗,就是命令行窗口這個(gè)頁(yè)面。
image.png
來(lái)朗兵,接下來(lái)做個(gè)小測(cè)試
首先污淋,新建一個(gè)文件,命名為T(mén)est.py余掖,然后敲入如下代碼....
import argparse
parser = argparse.ArgumentParser()
parser.parse_args()
接下來(lái)寸爆,我們到這個(gè)項(xiàng)目的目錄下運(yùn)行下面的命令
python Test.py --help
然后命令行會(huì)打印下面的結(jié)果!
image.png
這個(gè)時(shí)候,程序已經(jīng)能夠給我們一定的反饋啦~~~ (-h這個(gè)參數(shù)表示幫助信息盐欺, 現(xiàn)在由于我們還沒(méi)有做進(jìn)一步的工作赁豆,所以它只有-h這一個(gè)命令啦~)
現(xiàn)在,讓我們添加一個(gè)參數(shù)吧~ 修改代碼至下面這個(gè)樣子
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("echo")
args = parser.parse_args()
print(args.echo)
接下來(lái)冗美,我們到這個(gè)項(xiàng)目的目錄下分別運(yùn)行下面的命令看下效果吧~~
python Test.py
python Test.py --help
python Test.py Wow!
biu魔种,結(jié)果在這里~
image.png
首先第一條命令,反饋給我們了一個(gè)錯(cuò)誤信息(error: the following arguments are required: echo)告訴我們?nèi)鄙僖粋€(gè)叫做
的參數(shù)粉洼。顯然這個(gè)參數(shù)就是我們剛剛在代碼中創(chuàng)建的那個(gè)~
接下里节预,我們來(lái)看第二條命令叶摄,我們
了這個(gè)文件(相當(dāng)于我們?cè)趩?wèn)“哎呀,這個(gè)文件我要怎么用呀”安拟,然后程序一本正經(jīng)的回答“嗯蛤吓,你需要給我一個(gè)叫做echo的參數(shù)”)
知道了怎么使用了,接下來(lái)就是正確的使用
這個(gè)文件啦糠赦。于是我們有了第三個(gè)命令会傲,第三個(gè)命令中,
就是我們想要傳給程序的參數(shù)淌山。回看代碼奔滑,我們使用了
命令來(lái)打印
的信息艾岂,所以最后程序也對(duì)我們喊
朋其。
接下來(lái)我們就可以為所欲為了A.A王浴,調(diào)整各種參數(shù)看看會(huì)有什么神奇的現(xiàn)象發(fā)生誒~
首先,我們可以為T(mén)est.py這個(gè)腳本文件創(chuàng)建一些描述信息梅猿。
parser = argparse.ArgumentParser()
parser.description='叫我出來(lái)干嘛氓辣!'
當(dāng)輸入
時(shí)就會(huì)跳出來(lái)啦
image.png
或者輸入兩個(gè)數(shù)字計(jì)算他們的乘積
import argparse
parser = argparse.ArgumentParser()
parser.description='喂我兩個(gè)數(shù)字,我就吐出他們的積'
parser.add_argument("ParA", help="我是A",type=int)
parser.add_argument("ParB", help="我是B",type=int)
args = parser.parse_args()
print('嗯袱蚓,好吃钞啸!積是',args.ParA*args.ParB)
:程序中使用了
來(lái)接收數(shù)字
image.png
如果我們不想輸入某些參數(shù)怎么辦呀?
簡(jiǎn)單颖低!直接在他們名字前添加--就好啦~ 我們對(duì)剛剛的程序做個(gè)小修改
import argparse
parser = argparse.ArgumentParser()
parser.description='喂我兩個(gè)數(shù)字絮吵,我就吐出他們的積'
parser.add_argument("--ParA", help="我是A",type=int)
parser.add_argument("--ParB", help="我是B",type=int)
args = parser.parse_args()
if args.ParA:
print("我只吃到了A,它是",args.ParA)
if args.ParB:
print("我只吃到了B忱屑,它是",args.ParB)
if args.ParA and args.ParB:
print("啊蹬敲,兩個(gè)都吃到啦!積是",args.ParA*args.ParB)
不過(guò)這次由于有些參數(shù)不確定是否輸入莺戒,所以在輸入?yún)?shù)的時(shí)候我們需要告訴程序我們想要對(duì)哪個(gè)參數(shù)賦值~
image.png
每次都要輸入
或者
好累啊有木有.... 好懶的 T^T伴嗡,所以我們?cè)僮鲂┬薷陌桑M可能的偷個(gè)懶=-=
import argparse
parser = argparse.ArgumentParser()
parser.description='喂我兩個(gè)數(shù)字从铲,我就吐出他們的積'
parser.add_argument("-a","--ParA", help="我是A",type=int)
parser.add_argument("-b","--ParB", help="我是B",type=int)
args = parser.parse_args()
if args.ParA:
print("我只吃到了A瘪校,它是",args.ParA)
if args.ParB:
print("我只吃到了B,它是",args.ParB)
if args.ParA and args.ParB:
print("啊名段,兩個(gè)都吃到啦渣淤!積是",args.ParA*args.ParB)
現(xiàn)在赏寇,我們就可以用
或者
輸入?yún)?shù)啦~似乎也沒(méi)有輕松多少....都是騙人的T^T
image.png
emmm.... 接下來(lái).... 沒(méi)有了... 因?yàn)閼?... 更多資料可以戳這里呀!<廴稀嗅定!,官方指南用踩,值得擁有.... 溜了溜了
image.png