【发布时间】:2015-02-10 17:34:41
【问题描述】:
我刚接触 Python,我正在尝试 argparse。如果第一个参数等于某个值,我想添加一个参数。
import argparse
class ArgsParser :
def __init__(self):
parser = argparse.ArgumentParser()
parser.add_argument('command')
args = parser.parse_args()
if args.command == 'a' :
parser.add_argument('-b', required=True)
args = parser.parse_args()
self.b = args.b
def main():
parser = ArgsParser();
print parser.b
if __name__ == '__main__':
main()
当我使用
运行脚本时prog.py a -b="abc"
报错
prog.py:错误:无法识别的参数:-b=abc
但如果我使用
运行脚本prog.py 一个
结果是
prog.py: 错误:参数 -b 是必需的
【问题讨论】:
-
在我看来,您想让
-b成为子命令的必需参数——docs.python.org/3/library/argparse.html#sub-commands