Using argparse to get command-line input
In some cases, we want to get the user input from the OS command line without a lot of interaction. We'd prefer to parse the command-line argument values and either perform the processing or report an error.
For example, at the OS level, we might want to run a program like this:
slott$ python3 ch05_r04.py -r KM 36.12,-86.67 33.94,-118.40From (36.12, -86.67) to (33.94, -118.4) in KM = 2887.35
The OS prompt is slott$
. We entered a command of python3 ch05_r04.py
. This command had an optional argument, -r KM
, and two positional arguments of 36.12,-86.67
and 33.94,-118.40
.
The program parses the command-line arguments and writes the result back to the console. This allows for a very simple kind of user interaction. It keeps the program very simple. It allows the user to write a shell script to invoke the program or merge the program with other Python programs to create a higher level program.
If the user enters something incorrect, the interaction might look...