Python – Разница между docopt и argparse

Я должен написать интерфейс командной строки, и я видел, что могу использовать docopt и argparse .

Я хотел бы знать, каковы основные различия между ними, чтобы я мог сделать просвещенный выбор.

Пожалуйста, придерживайтесь фактов. Я не хочу, Вау. docopt. Как прекрасно. Очень полезно.

    3 Solutions collect form web for “Python – Разница между docopt и argparse”

    Docopt анализирует строку doc, в то время как argparse строит свой синтаксический анализ, создавая экземпляр объекта и добавляя к нему поведение посредством вызовов функций.

    Пример для argparse:

     parser = argparse.ArgumentParser() parser.add_argument("operation", help="mathematical operation that will be performed", choices=['add', 'subtract', 'multiply', 'divide']) parser.add_argument("num1", help="the first number", type=int) parser.add_argument("num2", help="the second number", type=int) args = parser.parse_args() 

    Пример для docopt:

     """Calculator using docopt Usage: calc_docopt.py <operation> <num1> <num2> calc_docopt.py (-h | --help) Arguments: <operation> Math Operation <num1> First Number <num2> Second Number Options: -h, --help Show this screen. """ from docopt import docopt if __name__ == '__main__': arguments = docopt(__doc__, version='Calculator with docopt') print(arguments) 

    Обратите внимание , что docopt использует разделы Usage: и Options: section для разбора. Здесь Arguments: предоставляется только для удобства конечного пользователя.

    argparse находится в библиотеке по умолчанию python, поэтому это не добавляет никаких дополнительных зависимостей к вашей программе. Различия в основном связаны с написанием кода. С помощью argparse можно добавлять перехватчики для плагинов, чтобы они могли добавлять свои собственные аргументы в вашу программу. Например, flake8 использует это.

    docopt – это сторонний модуль, который обеспечивает простой способ анализа аргументов. Мне лично нравится docopt из-за его простоты, но я не говорю, что это лучше всего использовать во всех случаях. В своей документации упоминается, что с помощью docopt можно использовать больше комбинаций передачи аргументов, чем при использовании argparse .

    Страница « Почему» для Click:

    http://click.pocoo.org/5/why/

    имеет хорошее сравнение между argparse, docopt и щелчком.

    Click еще одну утилиту для разбора командной строки для Python.

     
    Interesting Posts for Van-Lav

    Панды применяются с общей суммой во втором столбце

    Как подсчитать 10 самых распространенных значений в dict в python

    Включение элемента в массиве 2d определенного цвета на основе ввода пользователем

    Удалите столбец в многомерном массиве, если все элементы в этом столбце удовлетворяют условию

    пил рисовать текст разными цветами

    Счет Django RawQuerySet

    pyqt рисунок на расширяющемся виджетах GUI

    Поиск слов после ключевого слова в python

    Как мне высмеять метод, который использует request.get в моем классе?

    Чтение значения ячейки, которое содержит формулу, возвращает 0.0 при использовании xlrd

    Pymongo aggregate: фильтр по количеству полей (динамический)

    Я знаю Perl 5. В чем преимущества изучения Perl 6, а не перехода на Python?

    Не удалось использовать easy_install для установки модулей Python

    Алгоритм генерации следующего элемента из последовательности, путем нахождения шаблона

    Использование регулярного выражения для запятой выделяет большое количество в системе нумерации южной Азии

    Python - лучший язык программирования в мире.