如何在python中创建显示所有可用命令的命令?像终端机上的帮助

时间:2019-02-15 12:15:23

标签: python python-3.x terminal calculator

我正在制作一个程序女巫,基本上是我为学校制作的几个数学库的终端接口。流程是python终端中的无限循环,可让您选择调用库中的函数,添加值并获得答案。

问题是,我希望代码可以减少调用请求输入的麻烦,为此,我希望列出所有可用命令。

或者甚至更好地显示不同的类别,并使其可以编写子帮助,例如


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

注意:这只是我刚刚创建的一些sudo方案,但类似的方法可以工作。

现在我已经创建了if语句,但是当移植到我所有不同的库和类别中时,代码很快就会变得重复。

我现在也有了它,如果您键入“ help”,您将获得所有单个命令。

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 :(得分:2)

使用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模块将为您处理无限循环,并将执行许多复杂的工作,例如解析帮助文档以及使用和箭头键提供命令历史记录。