Как я могу распечатать docstring файла Python при его выполнении?
У меня есть скрипт Python с docstring. Когда синтаксический анализ аргументов командной строки не удается, я хочу распечатать docstring для информации пользователя.
есть ли способ сделать это?
минимальный пример
#!/usr/bin/env python
"""
Usage: script.py
This describes the script.
"""
import sys
if len(sys.argv) < 2:
    print("<here comes the docstring>")
            4 ответов
docstring хранится в модуле __doc__ глобальные.
print(__doc__)
кстати, это касается любого модуля: import sys; print(sys.__doc__). Docstrings функций и классов также находятся в их 
вот альтернатива, которая не жестко кодирует имя файла скрипта, а вместо этого использует sys.argv[0] для печати. Использование %(scriptName) s вместо %s улучшает читаемость кода.
#!/usr/bin/env python
"""
Usage: %(scriptName)s
This describes the script.
"""
import sys
if len(sys.argv) < 2:
   print __doc__ % {'scriptName' : sys.argv[0].split("/")[-1]}
   sys.exit(0)
разбор аргументов всегда должен выполняться с помощью argparse.
вы можете отобразить __doc__ строка, передавая ее в description параметр 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)
если вы называете это mysuperscript.py и выполнить его вы получите:
$ ./mysuperscript.py --help
usage: mysuperscript.py [-h] -f FILE
This describes the script.
optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  write report to FILE
Я получил такую проблему, прошелся по сети, и к счастью нашел ответ, узнал sys модуль, и создал скрипт в Python вот это
if __name__=='__main__':
 if len(sys.argv)==2 and sys.argv[1]=='--help':
    print(__doc__)
введя ./yourscriptname.py --help или python3 yourscriptname.py --help он покажет вашу docstring