我有以下参数的程序: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