现在最新的是argparser
首先,看个例子(这个例子是抄标准库的 🙃):
1 | import argparse |
关于argparse.ArgumentParser(),一些常用的配置有:
prog
: 程序名字,在help字符串中可以用”%{prog}s”来引用usage
: 默认生成就可以了description
: 在显示命令之前展示的文字,比如一些描述程序是干嘛的epilog
: 在显示命令之后展示的文字,比如说一些examplesformatter_class
: argparse.RawDescriptionHelpFormatter表示description和epilog都是格式化好了,不用程序自己去格式化了,argparse.RawTextHelpFormatter表示help和命令描述都是格式化好了,不用程序再去格式化了。
其他的自己去发掘吧
关于ArgumentParser.add_argument()
有以下常用的东西:
- 添加一个位置命令:
parser.add_argument("file")
- 添加一个短命令:
parser.add_argument("-f")
- 添加一个长命令:
parser.add_argument("--foo")
- 添加帮助:
parser.add_argument("-f","--foo",help="这是帮助")
- 添加命令取值的提示:
parser.add_argument("-f","--foo",metavar="FILE")
- 指定命令取值的个数:
parser.add_argument("-f",nargs=2)
- 指定命令取值的类型:
parser.add_argument("-f",type=int)
- 指定命令取值的默认值:
parser.add_argument("-f",default="aa.txt")
- 指定命令取值的动作:
parser.add_argument("-f",action="store_true")
,store_true
是存储为True - 指定命令取值的存储位置:短命令默认是短命令的名字,比如第2个里的
f
,长命令默认是长明令的名字,比如第3个里的foo
,长短都有就取长的,都不喜欢的话就这样指定parser.add_argument("-f","--foo",dest="foovalue")
,就存到foovalue
中了,以后使用就是args["foovalue"]
- 指定命令取值的范围:
parser.add_argument("-f",choices=["a.txt","b.txt"])
好了,就是这些,用的愉快~