首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编写命令和标志,并将其与and解析分开

编写命令和标志,并将其与and解析分开
EN

Stack Overflow用户
提问于 2021-12-12 08:04:27
回答 1查看 90关注 0票数 2

我在python中编写了一段代码,它使用了a解析模块,使它更容易使用。

我可以以标志的形式添加参数,如:

代码语言:javascript
复制
parser.add_argument('-u', '--url', dest='url', help='type in url')

但是,就像在gobuster中一样,当您使用帮助标志(-h)时,您也可以看到您也可以传递命令(如dir、fuzz等)。

代码语言:javascript
复制
gobuster dir --help

如何做到这一点?我可以通过以下方式不带任何论据地制作旗子:

代码语言:javascript
复制
parser.add_argument('R', action='store_true', help='allow recursion')

简而言之,我试图了解如何分别定义命令,以便它们也显示在“帮助”部分的命令下,而不是在可选参数下。我还试图了解如何为每个命令创建一个单独的帮助部分。

EN

回答 1

Stack Overflow用户

发布于 2021-12-14 06:39:47

可以通过带有单独的帮助消息和父参数的子解析器添加它。

代码语言:javascript
复制
 arg_parser.add_argument('--version', action='version', version='%(prog)s 1.0')
 subparsers = arg_parser.add_subparsers(title='subcommands',dest='subcommandsarg',help='Program parser for subcommands')
 parser1 = argparse.ArgumentParser(add_help=False)
 parser1.add_argument('-a','--arg1', dest='module',required=False,help='Mod Name' ,default='all')
 subparsers.add_parser('parser1',parents=[parser1],help="Help text for parser1")
 parser2 = argparse.ArgumentParser(add_help=False)
 parser2.add_argument('-b','--arg2', dest='module',required=False,help='Mod Name' ,default='all')
 subparsers.add_parser('parser2',parents=[parser2],help="Gets the configuration of mods")
 options = arg_parser.parse_args()

输出

代码语言:javascript
复制
#python test.py -h
usage: program [-h] [--version] {parser1,parser2} ...

optional arguments:
  -h, --help         show this help message and exit
  --version          show program's version number and exit

subcommands:
  {parser1,parser2}  Program parser for subcommands
    parser1          Help text for parser1
    parser2          Gets the configuration of mods

#python test.py parser1 -h
usage: program parser1 [-h] [-a MODULE]

optional arguments:
  -h, --help            show this help message and exit
  -a MODULE, --arg1 MODULE
                        Mod Name

#python test.py parser2 -h
usage: program parser2 [-h] [-b MODULE]

optional arguments:
  -h, --help            show this help message and exit
  -b MODULE, --arg2 MODULE
                        Mod Name
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70321904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档