我有以下參數的程序:argparse蟒蛇2個自選單變量
- 文件
- 目錄
- 名1
- 名2
文件必須始終作爲傳遞參數,目錄可能與否,並且name1和name2必須同時傳遞它們中的任何一個或它們兩者。
這是我在這一刻:
parser = argparse.ArgumentParser()
parser.add_argument("file", help="The file")
parser.add_argument("resources_dir", default='.', nargs='?', help="The directory of media files")
parser.add_argument("name", nargs=2, help="names")
幫助正顯示出:
用法:wacv [-h]文件[resources_dir]名稱的名稱
而且我希望它是:
用法:wacv文件[res_dir] [name1 name2]
但是我希望'name'參數像我之前講的那樣。我怎樣才能做到這一點?
假設'names'只是字符串,你如何期待解析器決定'name1'是不是可選'res_dir'(假設沒有提供'res_dir')?沒有辦法直接用'argparse'強制'0或2'語義,但是你可以接受'*'然後做你自己的錯誤檢查。 – AChampion
最後,我決定接受*名稱和檢查後我自己如果是0或2,但我想知道是否有更好的方法來做到這一點 – xBlackout