我正在包装一个通过名为options_parser
的属性公开其OptionParser
的类。我将这个课程包装在一个“跑步者”中,我写的是使用argparse。我使用ArgumentParser
的{{3}}方法来解析包装器的参数,以及我传递给包装类实例的任何剩余参数。
运行./wrapper.py --help
不会列出已包装类的选项。有没有方便的方法将optparse选项添加到包装器的argparse参数?
答案 0 :(得分:2)
如果它仅用于显示选项,我可以想到的一种方法是使用format_help
的{{1}}并将其放在optparse
的结尾中,例如:
argparse
您当然可以根据需要设置epilog的格式,包括对两个选项列表的一些解释。你也可以试验一个不同的Formatter,虽然在这种情况下默认的一个不能正常工作,因为它会从epilog中删除换行符。如果对布局感到绝望,你也可以尝试通过继承In [303]: foo = OptionParser()
In [304]: foo.add_option("-f", "--file", dest="filename",help="read data from FILENAME")
In [305]: foo.add_option("-v", "--verbose",action="store_true", dest="verbose")
In [311]: bar = ArgumentParser(epilog = foo.format_help(), formatter_class = RawTextHelpFormatter)
In [312]: bar.add_argument('integers', metavar='N', type=int, nargs='+',help='an integer for the accumulator')
In [313]: bar.add_argument('--sum', dest='accumulate', action='store_const',const=sum, default=max,help='sum the integers (default: find the max)')
In [314]: bar.print_help()
usage: ipython [-h] [--sum] N [N ...]
positional arguments:
N an integer for the accumulator
optional arguments:
-h, --help show this help message and exit
--sum sum the integers (default: find the max)
Usage: ipython [options]
Options:
-h, --help show this help message and exit
-f FILENAME, --file=FILENAME
read data from FILENAME
-v, --verbose
创建自己的格式化程序,虽然我不建议基于类文档:
argparse.HelpFormatter