Как создать команду в Python, которая показывает все доступные команды?как помощь в терминале - PullRequest
0 голосов
/ 15 февраля 2019

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

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

Или даже лучше показать разные категории и дать возможность писать вспомогательные подсказки, например,


>>> help 
algebra
finance
geometry
>>>help.finance
stockmarket
personal finance
>>>help.finance.stockmarket 
what: price to earnings. command: "p2e" values: stockpice, eps

примечание: это просто сценарий sudo, который я только что создално что-то подобное сработало бы.

Пока я создал операторы if, но при переносе во все мои разные библиотеки и категории код быстро становится повторяющимся.

У меня тоже теперь естьчто если вы наберете «помощь», вы получите каждую команду просто неожиданно.

print("Welcome to the stockmath project ")
print("if you want to run a command  just type it in below")
print("if you dont know any commands, type help")
print("_______________________________________________")


command = input() 


while True:
    if command == ("stm.test"):
        stockmath.test()
    elif command == ("help") and counter == 0:
        print ("p2e, price to earnings,command = stm.p2e,"
        "values: price per share, earnings per share")
    elif command == ("quit"):
        break

Еще раз напомню, что я еще не построил эту часть.

1 Ответ

0 голосов
/ 15 февраля 2019

Используйте модуль Python cmd .

Вот очень простой пример

import cmd

class SimpleCmd(cmd.Cmd):
    intro = 'Welcome to this simple command prompt'
    prompt = ">>"

    def do_left(self,arg):
        """Go Left"""
        print("Go Left")

    def do_right(self,arg):
        """Go Right"""
        print("Go Right")

    def do_quit(self,arg):
        """Exit command prompt"""
        return True

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

Вывод программы будет выглядеть примерно так

Welcome to this simple command prompt
>>help

Documented commands (type help <topic>):
========================================
help  left  right

>>help left
Go Left

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

...