内置argparse的包装器,允许用户通过交互式提示填写缺少的命令行参数
argparse-prompt的Python项目详细描述
argparseprompt
argparseprompt是内置argparse的包装器,允许 用户通过交互式提示
安装
可以使用pip安装argparseprompt:
pip install argparse_prompt
用法
基本用法
这个模块的唯一公共接口是PromptParser
类,它是python的
ArgumentParser。使用这个类的方式与使用
使用ArgumentParser,除非任何参数没有指定的default
值,并且没有提供值
对于命令行中的参数,PromptParser
将使用input()
提示为此参数输入一个值,该值为
来自Stdin。
考虑下面的代码(取自单元测试之一):
fromargparse_promptimportPromptParserparser=PromptParser()parser.add_argument('--argument','-a',help='An argument you could provide',default='foo')print(parser.parse_args().argument)
如果使用argument
的值运行此脚本,解析将正常运行:
$ python test/default_parser.py --argument 12
12
但是,如果没有为arg
指定值,解析器将提示您输入一个值
$ python test/default_parser.py
argument: An argument you could provide
> (foo) car
car
默认值
由于此参数有默认值,您也可以按回车键,此值将自动使用:
python test/default_parser.py
argument: An argument you could provide
> (foo)
foo
类型检查
您还可以用常规方式为参数指定类型:
fromargparse_promptimportPromptParserparser=PromptParser()parser.add_argument('--argument','-a',help='An argument you could provide',type=int)print(parser.parse_args().argument)
如果这样做,则此类型检查将用于您在提示下输入的值:
$ python test/typed_parser.py
argument: An argument you could provide
abc
Argument "argument" was given a value not of type <class 'int'>
安全值
对于需要安全的参数,如密码、密钥等,可以在定义
争论。这将导致用户为该字段输入的任何内容对终端隐藏,就像
git
,或ssh
隐藏密码输入。
例如:
parser.add_argument('--password','-p',help='A very secret password',secure=True)
情景禁用提示
如果将prompt
参数用于add_argument
,解析将被禁用:
parser.add_argument('--argument','-a',help='An argument you could provide',default='foo',prompt=False)
另外,如果要禁用所有提示(例如,对于自动脚本),只需将ARGPARSE_PROMPT_AUTO
设置为
真实值:
ARGPARSE_PROMPT_AUTO=1 python test/default_parser.py