Python Arguments With Argparse module: The Template I Use for CLI Scripting

The aim of this playbook🏁 is to try to standardize a simple use of argparse module in Python for passing named arguments from CLI (PowerShell in my case).

steps

  1. use if __name__ == "__main__": main() pattern to execute from terminal
  2. parse arguments within the main() function that has no parameters as all
  3. define an init_argparse() function:
  4. create a parser object by calling argparse.ArgumentParser()
  5. declare one or more arguments with parser.add_argument("--<long_param_name>")
  6. return parser
  7. parse args by creating an args object by calling parser.parse_args()
  8. define a function proper with param1, param2, ...
  9. call function_proper with params being assigned as attributes of an args object. e.g. function_proper(param1=args.param1, param2=args.param2)
  10. within a shell call the module with named arguments:
  • e.g. python foobar.py --param1="foo" --param2=="bar"