How can I print a Python file's docstring when executing it? How can I print a Python file's docstring when executing it? python python

How can I print a Python file's docstring when executing it?


The docstring is stored in the module's __doc__ global.

print(__doc__)

By the way, this goes for any module: import sys; print(sys.__doc__). Docstrings of functions and classes are also in their __doc__ attribute.


Here is an alternative that does not hardcode the script's filename, but instead uses sys.argv[0] to print it. Using %(scriptName)s instead of %s improves readability of the code.

#!/usr/bin/env python"""Usage: %(scriptName)sThis describes the script."""import sysif len(sys.argv) < 2:   print __doc__ % {'scriptName' : sys.argv[0].split("/")[-1]}   sys.exit(0)


Argument parsing should always be done with argparse.

You can display the __doc__ string by passing it to the description parameter of Argparse:

#!/usr/bin/env python"""This describes the script."""if __name__ == '__main__':    from argparse import ArgumentParser    parser = ArgumentParser(description=__doc__)    # Add your arguments here    parser.add_argument("-f", "--file", dest="myFilenameVariable",                        required=True,                        help="write report to FILE", metavar="FILE")    args = parser.parse_args()    print(args.myFilenameVariable)

If you call this mysuperscript.py and execute it you get:

$ ./mysuperscript.py --helpusage: mysuperscript.py [-h] -f FILEThis describes the script.optional arguments:  -h, --help            show this help message and exit  -f FILE, --file FILE  write report to FILE