参数分析器问题:可选参数,然后需要3个子参数



我正在为一个程序编写一个参数解析器。当前解析器的行为类似于:

Simulate Roboy in MuJoCo.
positional arguments:
P                   Proportional Gain
I                   Derivational Gain
D                   Integral Gain
simRate             Simulation Rate
optional arguments:
-h, --help          show this help message and exit
--renderRate Hz     Render frequency. Default: Off.
--loggingRate Hz    Logging frequency. Default: Off.
--plot              Plotting after Finish. Default: Off.
--controlOnlyJoint  Fix all But the specified Joint. Default: Off.

我想要一个额外的参数--playBag。如果指定,用户还必须输入另外3个变量,一个为path类型,两个为integer类型,如--playBag shoulder.bag 10 15

我试过用一个亚分析器进行试验,它有点工作,但不是真的。

完整代码:

import argparse
from importlib.resources import path
parser = argparse.ArgumentParser(description='Simulate Roboy in MuJoCo.')

#playBagParser.add_argument('file', type=str, help='bagfile path')
parser.add_argument('P', type=int, help='Proportional Gain')
parser.add_argument('I', type=int, help='Derivational Gain')
parser.add_argument('D', type=int, help='Integral Gain')
parser.add_argument('simRate', type=int, help='Simulation Rate')
parser.add_argument('--renderRate', metavar='Hz', type=int, help='Render frequency. Default: Off.')
parser.add_argument('--loggingRate', metavar='Hz', type=int, help='Logging frequency. Default: Off.')
parser.add_argument('--plot', action='store_true', help='Plotting after Finish. Default: Off.')
parser.add_argument('--controlOnlyJoint', action='store_true', help='Fix all But the specified Joint. Default: Off.')
#subparser = parser.add_subparsers(dest='command')
#playBagParser = subparser.add_parser('B', help='Play Bagfile')
#playBagParser.add_argument('file', type=str, default=None, help='bagfile path')
#playBagParser.add_argument('start', type=int, help='bagfile path')
#playBagParser.add_argument('duration', type=int, help='bagfile path')
args = parser.parse_args()

.add_argument()可以接受一个nargs参数,该参数指定要接受多少个子参数。

因此,您可以执行以下操作:

parser.add_argument('--playBag', nargs=3)

不过您需要手动将后两个参数转换为整数。

相关内容

  • 没有找到相关文章

最新更新