Python中的optparse make_option()等效于argparse

时间:2013-01-17 20:27:53

标签: python argparse optparse

来自OPTPARSE库参考:

option_list = [
    make_option("-f", "--filename",
                action="store", type="string", dest="filename"),
    make_option("-q", "--quiet",
                action="store_false", dest="verbose"),
    ]

parser = OptionParser(option_list=option_list)

与上面的示例一样,我想使用make_option创建一个选项列表,并将其传递给装饰器,该装饰器实例化解析器并添加参数。

如何在argparse中实现这一目标?有没有办法填充解析器而不是parse_args()?

2 个答案:

答案 0 :(得分:2)

您可以argparse.ArgumentParser列出parent parsers

parent = argparse.ArgumentParser(add_help=False)
parent.add_argument('-f','--filename')
parent.add_argument('-q','--quiet',action='store_false',dest='verbose')

parser = argparse.ArgumentParser(parents=[parent])
...
namespace = parser.parse_args()

答案 1 :(得分:0)

def process_args():
    parser = argparse.ArgumentParser()
    parser.add_argument('-f', '--filename', dest='filename', type=string, action='store')
    args = parser.parse_args()
    return args

if __name__ == '__main__':
    args = process_args()