我應該如何構建這個概念來形成這個?你應該可以調用-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