Я пытаюсь написать интерфейс командной строки (впервые), и, прочитав о argparse
, optparse
и getopt
, я выбрал argparse
из-за нескольких рекомендаций здесь, в SO, и в других местах в сети. Немного адаптировав совет г-на ван Россума, я подключил первый интерфейс командной строки выглядит следующим образом:
def main(argv=None):
if argv is None:
argv = sys.argv
desc = u'some description'
parser = argparse.ArgumentParser(description=desc)
parser.add_argument('-s', '--search', help='Search for someone.')
parser.add_argument('-c', '--do_something_else', help='Do something else.')
args = parser.parse_args()
print args
if __name__ == '__main__':
sys.exit(main())
Выполнение python myscript.py -h
приводит к:
usage: dblp.py [-h] [-s SEARCH] [-c DO_SOMETHING_ELSE]
some description
optional arguments:
-h, --help show this help message and exit
-s SEARCH, --search SEARCH
Search for someone.
-c DO_SOMETHING_ELSE, --do_something_else DO_SOMETHING_ELSE
Do something else.
Итак, мой первый вопрос: Почему SEARCH
и DO_SOMETHING_ELSE
пишутся ЗАГЛАВНЫМИ БУКВАМИ? Второй вопрос: нарушаю ли я какие-либо стандарты? Есть ли лучший способ (или хороший пример из реальной жизни, на котором я могу поучиться) создания понятных и полезных интерфейсов командной строки с помощью Python? И есть ли подводные камни, которых следует избегать , при написании cmd интерфейсов?