我应该如何构建这个概念来形成这个?你应该可以调用-l,-m,-s,-h,家庭或工作,但不能同时使用两者。在使用任何-i之前,您必须先调用-l或-m。我应该如何构建这个argparse来形成这个?
usage: prog
(-l | -m) [-i1][-i2][-i3][-i4]
-s
-h
home
work
可以用被称为:
prog home
prog work
prog -l -i1
prog -m -i1 -i2
prog -s
我写做类似的东西的代码。
def get_args():
parser = argparse.ArgumentParser(prog="prog")
group = parser.add_mutually_exclusive_group(required=True)
group.add_argument('-l', action='store_true', help='List Mode. List available options', default=False, dest='list')
group.add_argument('-m', action='store_true', help='Departure Mode. Return a departure time from stopcode or agency and stopname', default=False, dest='mode')
group.add_argument('-s', action='store_true', help='Setup Mode. Enter setup mode to make a home and a work list of station codes.', default=False, dest='setup')
group.add_argument('home', help='Display HOME_LIST') # this causes it to break because positional arguments cant be required for some reason
group.add_argument('work', help='Display WORK_LIST')
parser.add_argument('-i1', nargs='?', dest='i1')
parser.add_argument('-i2', nargs='?', dest='i1')
parser.add_argument('-i3', nargs='?', dest='i1')
return parser.parse_args()
不幸的是,堆栈溢出不是一个代码写入服务。如果您想出的解决方案看起来不起作用,我们很乐意帮助您找出问题所在,但在不向我们展示您所尝试的内容的情况下询问代码并不适合Stack Overflow的规则。 – zondo
好吧,我可以添加我的可怕代码尝试 – polka
我必须去,我可以在一个小时内回答问题。 – polka