Python; argparse; how to specify position of positional arguments
如何指定位置参数的位置?
在下面的示例中,scr&scv参数出现在可选参数的末尾,我希望它们出现在开头。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #!/usr/bin/python import argparse ### Parse arguments ### parser = argparse.ArgumentParser() parser.add_argument("SCR",type=int) parser.add_argument("SCV",type=int) parser.add_argument("--itemid",nargs='?') parser.add_argument("--tkt",nargs='?') parser.add_argument("--rfc",nargs='?') parser.add_argument("--state",nargs='?') parser.add_argument("--vendor",nargs='?') parser.add_argument("--application",nargs='?') parser.add_argument("--submitter",nargs='?') parser.add_argument("--assigneddev",nargs='?') parser.add_argument("--manager",nargs='?') parser.add_argument("--maasteps",nargs='?') parser.add_argument("--reasonforfailure",nargs='?') parser.add_argument("--assignedpm",nargs='?') parser.add_argument("--release",nargs='?') parser.add_argument("--erelease",nargs='?') parser.add_argument("--testenvloaded",nargs='?') parser.add_argument("--datetestloaded",nargs='?') parser.add_argument("--dateint2loaded",nargs='?') parser.add_argument("--tqadeploytime",nargs='?') parser.add_argument("--prodenvloaded",nargs='?') parser.add_argument("--dateprodloaded",nargs='?') parser.add_argument("--proddeploytime",nargs='?') parser.add_argument("--proddeployer",nargs='?') args = parser.parse_args() > scratch.py -h usage: scratch.py [-h] [--itemid [ITEMID]] [--tkt [TKT]] [--rfc [RFC]] [--state [STATE]] [--vendor [VENDOR]] [--application [APPLICATION]] [--submitter [SUBMITTER]] [--assigneddev [ASSIGNEDDEV]] [--manager [MANAGER]] [--maasteps [MAASTEPS]] [--reasonforfailure [REASONFORFAILURE]] [--assignedpm [ASSIGNEDPM]] [--release [RELEASE]] [--erelease [ERELEASE]] [--testenvloaded [TESTENVLOADED]] [--datetestloaded [DATETESTLOADED]] [--dateint2loaded [DATEINT2LOADED]] [--tqadeploytime [TQADEPLOYTIME]] [--prodenvloaded [PRODENVLOADED]] [--dateprodloaded [DATEPRODLOADED]] [--proddeploytime [PRODDEPLOYTIME]] [--proddeployer [PRODDEPLOYER]] SCR SCV |
型
默认的
分析位置时,可以先分析位置。
解决这个问题的一个显而易见的方法是提供您自己的使用字符串,但是有了这么多的参数,我可以理解不想这样做。
https://stackoverflow.com/a/26986546/901925(去年11月)有一个