Создание интерфейса командной строки (CLI) с помощью модуля cmd

Модуль cmd позволяет написать для вашей программы простой текстовый пользовательский интерфейс в виде командной строки.

Такой интерфейс может быть полезен:

  • На стадии прототипирования или для тестирования программы.

  • Когда программа запускается на сервере без графической оболочки

  • Когда нужен действительно очень простой и примитивный пользовательский интерфейс

В качестве примера на странице документации приведен интерфейс для управления черепашкой, он хорошо показывает основной функционал модуля, который включает в себя:

  • Запуск основного цикла приложения

  • Небольшие настройки выводимого в описания и приглашения командной строки

  • Автоматический поиск методов для вызова, по введенной команде

  • Автоматическая генерация документации для команд

  • Добавление некоторых автоматических обработчиков

Минимальный пример

import cmd


class Shell(cmd.Cmd):
    def do_make(self, arg):
        """Documentation"""
        ...
    

if __name__ == '__main__':
    Shell().cmdloop()

Основное использование cmd сводится к тому что вы определяете методы вида do_xxx, которые вызываются при вводе команды xxx, текст введенный через пробел после команды, интерпретируется как аргумент команды.