The best way to handle command line arguments with Python is defopt
. It works like magic. You write a function, add a proper docstring using any standard format (I use [numpy doc]), and see the magic
import defopt def main(greeting, *, count=1): """Display a friendly greeting. :param str greeting: Greeting to display :param int count: Number of times to display the greeting """ for _ in range(count): print(greeting) if __name__ == '__main__': defopt.run(main)
You have:
- help string generation
- data type conversion
- default arguments
- zero boilerplate code
Magic!