argparse argument order

后端 未结 6 1761
故里飘歌
故里飘歌 2020-12-10 12:03

I have a little problem.

I use argparse to parse my arguments, and it\'s working very well.

To have the args, I do :

p_args = pa         


        
6条回答
  •  不知归路
    2020-12-10 12:09

    To keep arguments ordered, I use a custom action like this:

    import argparse
    class CustomAction(argparse.Action):
        def __call__(self, parser, namespace, values, option_string=None):
            if not 'ordered_args' in namespace:
                setattr(namespace, 'ordered_args', [])
            previous = namespace.ordered_args
            previous.append((self.dest, values))
            setattr(namespace, 'ordered_args', previous)
    parser = argparse.ArgumentParser()
    parser.add_argument('--test1', action=CustomAction)
    parser.add_argument('--test2', action=CustomAction)
    

    To use it, for example:

    >>> parser.parse_args(['--test2', '2', '--test1', '1'])
    Namespace(ordered_args=[('test2', '2'), ('test1', '1')], test1=None, test2=None)
    

提交回复
热议问题