Python argparse how to indicate the position of positional arguments

How to indicate the position of a positional argument?

In my example below, the SCR and SCV arguments appear at the end of the optional arguments, I want them to appear at the beginning.

#!/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
+4
source share
1 answer

The default formatter usageseparates the positioning arguments from the options and displays them at the end. In the case of multi-line displays like this, positional elements are placed on a separate line. This is what you see.

When parsing positioning may occur first.

, , .

fooobar.com/questions/27021/... ( ) HelpFormatter, . , , . .

+3

All Articles