Argparse is a well known library for writing highly extensible, and robust scripts. In this demo you will learn how to set up an optional boolean argument.
Some terms to help you navigate the post
A module that allows you to create robust scripts and handles much of the complexity of this in the backend. See full python reference for the module for details
Arguments are special characters you specify when running a script that allow you to alter the default functionality, provide additional information, or ask the script to print information about itself such as version or help text. Most scripts include a -h or --help
option to address the second example, and to get this information you would type python <script file> -h
or python <script file> --help
In this repo you can see the demo code and actually run it by running python optional_boolean_arguments.py
or python3 optional_boolean_arguments.py
Lets say you are building a script that gives you the information about a domain. One optional argument could be -e
or --expiry
when this option is used the script returns the SSL and domain expiry information.
"""A demo of optional boolean arguments using argparse."""
import argparse # Module used to set up argument parser
# Setting up Main Argument Parser
main_parser = argparse.ArgumentParser(description="A demo of optional boolean arguments")
# Adding optional boolean argument
main_parser.add_argument("-r", '--run',
help="If argument is present run 'print('hello')'",
action='store_true', # If -r is present, the argument is True
default=False, # If -r is not present the argument is False
required=False, # Makes argument optional
dest="run"
) # Makes variable accessible as 'run', see lines 19-26
def function_to_run():
"""Function intended to run if the -r or --run command is used"""
print("-r or --run was called")
# Argument parsing
args = main_parser.parse_args()
if args.run: # If -r or --run is specified, run function_to_run()
function_to_run()
else:
# If -r or --run was not present
print("-r or --run was not called")