我正在尝试使用 argparse 模块将必需的输入文件名和可选的输出文件名添加到多个子解析器。
这是我的尝试:
# test_argparse.py
import argparse
def setup_parser():
parser = argparse.ArgumentParser(prog='test_argparse.py',
formatter_class=argparse.RawDescriptionHelpFormatter,
description='Testing the argparse module.')
parser.add_argument('--version', action='version', version='%(prog)s 1.0')
subparsers = parser.add_subparsers()
parser_actionA = subparsers.add_parser('actionA')
parser_actionB = subparsers.add_parser('actionB')
parser_actionC = subparsers.add_parser('actionC')
parser.add_argument('infile', nargs=1, help='input mesh file name')
parser.add_argument('outfile', nargs='?', help='output mesh file name')
return parser
if __name__ == '__main__':
parser = setup_parser()
args = parser.parse_args()
print args
如果我执行这个:
python test_argparse.py actionA infile outfile
它不起作用,我得到的是:
usage: test_argparse.py [-h] [--version]
{actionA,actionB,actionC} ... infile [outfile]
test_argparse.py: error: unrecognized arguments: infile