, как создать интерфейс командной строки или интерпретатор в python

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

Я уже разработал class1.py, class2.py и т. Д. С функциями, реализованными внутри каждого класса. например, в Operator.py есть функции добавления, минуса, времени, разделения. как я могу создать интерфейс командной строки для этих классов?

также для этого CLI, это бесконечный цикл внутри main () для взаимодействия?

И как CLI может дать некоторую обратную связь, например, предложить пользователю следующую операцию или ввести правильную команду или ввести --help и проверить все доступные команды. как и оболочки Bash.

Также кажется, что есть модуль optparse от python. есть ли какие-нибудь хорошие, полные или высококачественные образцы, показывающие, как построен интерфейс командной строки? Я хотел бы воспользоваться этой возможностью, чтобы научиться писать программу CLI.

я хочу, чтобы: я уже разработал несколько классов, а также графический интерфейс для вызова методов из этих классов. Теперь я хочу иметь интерфейс командной строки, такой как графический интерфейс, для использования этих классов. например, у меня есть такие классы, как CDContainer (с такими методами, как addCD, removeCD и т.д.), CD (с такими методами, как воспроизведение, остановка, пауза), и у меня есть графический интерфейс, с которым можно было бы взаимодействовать. Теперь я хочу иметь CLI, который под bash, Я мог бы запустить этот интерфейс командной строки и вызвать команды createCDContainer, addCD, removeCD.

Если я использую cmd,

class CDContainerCLI(cmd.Cmd):

    def do_CDContainer(self, line):
        print "create CD container"

    def do_addcd(self, line):
        print "add cd into the container"

как мне добавить здесь некоторые параметры? например, я хочу добавить триллер addcd --track 3 --cdname Я думаю, что "--track 3 --cdname thriller" - это 4 аргумента для функции addcd. как это реализовать?

5
задан pepero 23 October 2010 в 18:21
поделиться