python argparse基本用法总结

python argparse基本用法总结,第1张

概述1、argparse是什么这个模块时用来在命令行模式下运行Python脚本,使能够传入参数,直接看个例子:就是比通过的命令行运行多了杠杠啥,杠啥。Pythontest_duye.py--videobody.MP4--imagea.png--relative--adapt_scale2、基本用法#-*-coding:utf-8-*-importargparse 1、argparse是什么

这个模块时用来在命令行模式下运行Python脚本,使能够传入参数,直接看个例子:

就是比通过的命令行运行多了杠杠啥,杠啥。

Python test_duye.py --vIDeo body.MP4  --image a.png --relative --adapt_scale
2、基本用法
# -*- Coding: utf-8 -*-import argparseimport datetimedef get_parser():    # 生成argparse对象    parser = argparse.ArgumentParser(description="帮助信息-->我的公众号名字是:杜唯西")        # 添加需要的参数    parser.add_argument('--start_dt', type=str, default=datetime.datetime.Now().strftime("%Y-%m-%d"))    parser.add_argument('--end_dt', type=str, required=True, default=datetime.datetime.Now().strftime("%Y-%m-%d"))    parser.add_argument('-n', required=True, choices=['du', 'vc'])    # 返回parser对象    return parser  if __name__ == '__main__':    parser = get_parser()  # 拿到argparse对象    print('-----1------')    print(parser)    print(type(parser))        args = parser.parse_args()  # 拿到argparse对象的参数    print('-----2------')    print(args)    print(type(args))        start_dt = args.start_dt  # 打印参数    end_dt = args.end_dt    n = args.n    print('-----3------')    print(start_dt)    print(end_dt)    print(n)

执行:python parser_test.py --start_dt '2020-03-04' --end_dt '2020-03-05' -n du

输出:

-----1------ArgumentParser(prog='parser_test.py', usage=None, description='帮助信息-->我的公众号名字是:杜唯西', formatter_class=<class 'argparse.Helpformatter'>, conflict_handler='error', add_help=True)<class 'argparse.ArgumentParser'>-----2------namespace(end_dt='2020-03-05', n='du', start_dt='2020-03-04')<class 'argparse.namespace'>-----3------2020-03-042020-03-05du

大概看下:

函数里分为包括:生成parser对象、给parser对象添加参数、返回parser对象。

生成对象时候的description参数用来显示帮助信息,在输出里可以看到。

add_argument方法用来添加参数信息:

1)'--start_dt':参数名字为start_dt

2)type:程序中需要的类型,比如设置type=inttype=bool。这样就省的类型转化了;

3)required如果为true:运行python时候不带上这个参数的设置就会报错;

4)default:没传入参数时候的默认值;

到此处位置,提到到带不带参数指的是:参数名和参数值一起,即--start_dt '2020-03-04'要一起。

5)choice:参数值只能从几个选项里面选择;

6)help:当使用—help或者-h查看帮助信息的时候,显示出来;看个效果:

先注释掉一些代码:

if __name__ == '__main__':    parser = get_parser()  # 拿到argparse对象    # print('-----1------')    # print(parser)    # print(type(parser))    args = parser.parse_args()  # 拿到argparse对象的参数    print('-----2------')    print(args)    print(type(args))    start_dt = args.start_dt  # 打印参数    end_dt = args.end_dt    n = args.nss    print('-----3------')    print(start_dt)    print(end_dt)    print(n)

执行: python parser_test.py --help

输出:

usage: parser_test.py [-h] [--start_dt START_DT] --end_dt END_DT -nss {du,vc}帮助信息-->我的公众号名字是:杜唯西optional arguments:  -h, --help           show this help message and exit  --start_dt START_DT  开始时间  --end_dt END_DT  -n {du,vc}         选择我的名字

7)dest:写这个是用在代码里的,比如用的长名字,方便读懂代码。

而外部传的参数名字还是这个玩意:'--start_dt':参数名字为start_dt;外部参数可以简单点,比如—s,更容易使用。

8)action:用法就是:

parser.add_argument('--age', action="store_true")

执行:python parser_test.py  --age

注意到没,参数后边没跟具体的值,因为上边action="store_true"表示,只要--age出现,那他就是true;要是不出现就是false。也就是说是布尔值。

注意和default区分。这俩个参数也迷惑了我一会。

 

后记:

PS:不知各位发现没有,end_dt既有require为true,又有default,default之间进冷宫了,不会发挥作用。

PS2:我在实验的时候还发现一个有意思的:

执行:python parser_test.py  --st '4' --end '5' -n du

只要参数的前几个字母能对的上,也是成功输出的。

 

end.

 

总结

以上是内存溢出为你收集整理的python argparse基本用法总结全部内容,希望文章能够帮你解决python argparse基本用法总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1188934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存