Simple example
The following simple script (simple.py
) tries to demonstrate how argparse
might be used.
The script defines 4 possible arguments -flag
, -number
, -text
and -req
.
action = 'store_true'
makes -flag
a boolean like argument which does not require an explicit value to be set. When simple.py
is invoked, either -flag
is present or not.
-number
is specified to accept only an
int
. If the script is invoked without using this argument, the corresponding value will be
None
.
-text
accepts a
string (str
). If this argument is not specified, the corresponding value will be the specified default value
Hello world
.
-req
also accepts an int
. Its required = True
also mandates that this argument must be used when called.
argparse
also adds the implicit argument -help
which, when used, prints the command line arguments.
simple.py
This is the source code for this example
import argparse
argParser = argparse.ArgumentParser()
argParser.add_argument('-flag' , action = 'store_true', help = 'Specify a true/false option' )
argParser.add_argument('-number' , type = int , help = 'What is the number' )
argParser.add_argument('-text' , type = str , help = 'What is the text' , default = 'Hello world')
argParser.add_argument('-req' , type = int , help = 'A required argument' , required = True )
parsedArgs = argParser.parse_args()
if parsedArgs.flag:
print('You specified the flag')
else:
print('You did not specify the flag')
print('The number is ' + str(parsedArgs.number))
print('The text is ' + parsedArgs.text )
print('req is ' + str(parsedArgs.req ))
Some invocations
Using -h
to summarize the possible arguments. The […]
braces indiciate optional arguments. Thus, it is visually clear that -req
is a required argument. -flag
is shown to accept no parameter while -number
and -text
accept exactly one parameter:
/home/rene> ./simple.py -h
usage: simple.py [-h] [-flag] [-number NUMBER] [-text TEXT] -req REQ
optional arguments:
-h, --help show this help message and exit
-flag Specify a true/false option
-number NUMBER What is the number
-text TEXT What is the text
-req REQ A required argument
/home/rene> ./simple.py -num 18
usage: simple.py [-h] [-flag] [-number NUMBER] [-text TEXT] -req REQ
simple.py: error: the following arguments are required: -req
No value specified for -text
, defaults to Hello world
:
/home/rene> ./simple.py -num 18 -req 99
You did not specify the flag
The number is 18
The text is Hello world
req is 99
No value specified for -number
, defaults to None
/home/rene> ./simple.py -flag -req 99
You specified the flag
The number is None
The text is Hello world
req is 99
Using the wrong data type for an argument:
/home/rene> ./simple.py -flag -num forty-two -req 99
usage: simple.py [-h] [-flag] [-number NUMBER] [-text TEXT] -req REQ
simple.py: error: argument -number: invalid int value: 'forty-two'
You specified the flag