Написание справки для python script

Я пытаюсь сделать мой python script очень удобным для пользователя, поэтому мне нравится писать для него какую-то помощь. Что вы посоветуете для этого? Я мог бы просто добавить некоторую логику, что если пользователь передал помощь в качестве параметра для script, они получат помощь. Есть ли передовая практика или соглашение для этого?

Ответы

Ответ 1

Используйте argparse.

Например, с test.py:

import argparse

parser=argparse.ArgumentParser(
    description='''My Description. And what a lovely description it is. ''',
    epilog="""All well that ends well.""")
parser.add_argument('--foo', type=int, default=42, help='FOO!')
parser.add_argument('bar', nargs='*', default=[1, 2, 3], help='BAR!')
args=parser.parse_args()

Запуск

% test.py -h

дает

usage: test.py [-h] [--foo FOO] [bar [bar ...]]

My Description. And what a lovely description it is.

positional arguments:
  bar         BAR!

optional arguments:
  -h, --help  show this help message and exit
  --foo FOO   FOO!

All well that ends well.

Ответ 2

Лучше всего использовать argparse для обработки всех аргументов командной строки. Он включает по умолчанию --help, который вы можете настроить по своему усмотрению.

Вот простейший пример:

import argparse

parser = argparse.ArgumentParser(description='This is my help')

args = parser.parse_args()

Результат:

% python argparse_test.py -h
usage: argparse_test.py [-h]

This is my help

optional arguments:
  -h, --help  show this help message and exit

Вы можете определить все свои аргументы с помощью argparse и задать справочное сообщение для каждого из них. Полученные отфильтрованные/проверенные аргументы возвращаются parser.parse_args().