Некоторые различия между argparse и optparse при разборе аргументов командной строки в Python:
- Обработка аргументов. 2 Argparse может обрабатывать позиционные и опциональные аргументы, а optparse — только опциональные. 2
- Поддержка синтаксиса. 1 Argparse позволяет программисту устанавливать, какие символы являются параметрами, а какие нет. 1 Optparse считает опции с определённым синтаксисом, например '-pf, -file, +rgb, /f», «внутренне противоречивыми» и не поддерживает их. 1
- Сообщения о подсказке. 1 Argparse даёт более качественные сообщения о подсказке при минимуме затрат. 1 Optparse требует, чтобы пользователь сам написал строку использования, и не даёт возможности выводить подсказки для позиционных аргументов. 2
- Поддержка количества аргументов. 2 Argparse поддерживает действия, которые потребляют переменное количество аргументов командной строки, в то время как optparse требует, чтобы точное количество аргументов (например, 1, 2 или 3) было известно заранее. 2
- Поддержка субкоманд. 14 Argparse поддерживает субкоманды, что позволяет создавать более сложные интерфейсы командной строки. 4 Optparse требует, чтобы пользователь вручную установил параметр allowinterspersedargs и выполнил отправку парсера. 2
- Параметры типа и действия. 2 Argparse позволяет указывать параметры типа и действия с помощью простых вызываемых объектов, в то время как optparse требует для правильной проверки аргументов использования таких атрибутов класса, как STOREACTIONS или CHECKMETHODS. 2
С версии Python 2.7 модуль optparse считается устаревшим, и его использование рекомендуется заменить на argparse. 4