从解析器获取参数名称,而不在argparse python中解析参数
在python脚本从解析器获取参数名称,而不在argparse python中解析参数,python,argparse,Python,Argparse,在python脚本make\u parser.py中有以下参数解析器: import argparse parser = argparse.ArgumentParser( description='Multiplies the input <n> by <m>' ) parser.add_argument( 'n', type=float, help='Input number to be multiplied' ) parser.add_argumen
make\u parser.py
中有以下参数解析器:
import argparse
parser = argparse.ArgumentParser(
description='Multiplies the input <n> by <m>'
)
parser.add_argument(
'n', type=float, help='Input number to be multiplied'
)
parser.add_argument(
'-m', '--optional-multiplier',
type=float, default=1,
help='multiplier for <n> : (default: 1)'
)
对于可选参数也是一样,比如解析器。get_optional_args
添加到代码中:
for action in parser._actions:
print(action)
print([(action.dest, action.option_strings) for action in parser._actions])
print([action.dest for action in parser._actions if not action.option_strings])
print([action.dest for action in parser._actions if action.option_strings])
结果(为清晰起见编辑):
0848:~/mypy$python3 stack57450629.py
_帮助操作(选项_strings=['-h','-help'],dest='help',nargs=0,const=None,default='==SUPPRESS==',type=None,choices=None,help='显示此帮助消息并退出',metavar=None)
_StoreAction(选项_strings=[],dest='n',nargs=None,const=None,default=None,type=,choices=None,help='Input number to multiply',metavar=None)
_StoreAction(option_strings=['-m','--optional multiplier'],dest='optional_multiplier',nargs=None,const=None,default=1,type=,choices=None,help='multiplier for:(default:1'),metavar=None)
[('help',['-h','-help'],('n',[]),('optional_乘数',['-m','-optional乘数'])]
[n']
[“帮助”,“可选的\u乘数”]
可能使用\u get\u positional\u kwargs()
和\u get\u optional\u kwargs()
方法?@SamChats我认为它不会返回以前定义的参数。它有一个必需的参数dest
parse.\u actions
是已定义的操作的列表。每个操作都有一个dest
属性。位置由空的选项\u strings
属性标识。
0848:~/mypy$ python3 stack57450629.py
_HelpAction(option_strings=['-h', '--help'], dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, help='show this help message and exit', metavar=None)
_StoreAction(option_strings=[], dest='n', nargs=None, const=None, default=None, type=<class 'float'>, choices=None, help='Input number to be multiplied', metavar=None)
_StoreAction(option_strings=['-m', '--optional-multiplier'], dest='optional_multiplier', nargs=None, const=None, default=1, type=<class 'float'>, choices=None, help='multiplier for <n> : (default: 1)', metavar=None)
[('help', ['-h', '--help']), ('n', []), ('optional_multiplier', ['-m', '--optional-multiplier'])]
['n']
['help', 'optional_multiplier']