Python 如何制作一个接受命令的控制台应用程序?

Python 如何制作一个接受命令的控制台应用程序?,python,python-3.x,console-application,Python,Python 3.x,Console Application,一般来说,我对Python和编程比较陌生。我正在编写一个控制台应用程序 如何编写在终端中接受命令的控制台应用程序?例如,终端本身如何接受命令并执行相应的任务。“命令”实际上只是应用程序中由用户调用的函数吗?控制台界面本身只是一个功能吗?例如: def console_interface(): user_input = input() if user_input == "some_function": some_function() if user_inp

一般来说,我对Python和编程比较陌生。我正在编写一个控制台应用程序

如何编写在终端中接受命令的控制台应用程序?例如,终端本身如何接受命令并执行相应的任务。“命令”实际上只是应用程序中由用户调用的函数吗?控制台界面本身只是一个功能吗?例如:

def console_interface():
    user_input = input()
    if user_input == "some_function":
        some_function()

    if user_input == "some_other_function":
        some_other_function()

虽然效率不高,但我知道上面的方法是有效的,因为我已经测试过了。这个总体想法正确吗?还是有点离题?

Python的标准库提供了一个模块,它完全封装了“接受命令的控制台应用程序”功能:请参阅

在该模块中,命令实际上是类的方法,它的子类
cmd.cmd
do_this
do_this
,等等,通过命名约定。上的示例是一个用于海龟图形的丰富的“控制台接受命令”,因此您可以使用它

从教学上讲,您可能希望从中给出的简单得多的示例开始——这是Python 2,但功能基本相同。这一系列优秀的示例需要稍加修改才能在Python3中运行,但应该不会太难

例如,考虑第一个问题:

import cmd

class HelloWorld(cmd.Cmd):
    """Simple command processor example."""

    def do_greet(self, line):
        print "hello"

    def do_EOF(self, line):
        return True

if __name__ == '__main__':
    HelloWorld().cmdloop()
do_EOF
是用户终止标准输入(Unix上的control-D)时发生的情况;如前所述

(在这种情况下,
返回True
终止程序)

要在Python 2中而不是在Python 3中运行此功能,只需更改一行:

        print "hello"
这必须成为

        print("hello")
因为
print
,它是Python 2中的一个语句,现在是Python 3中的一个函数


我发现位于的
cmd.py
源代码也很有启发性,我建议将它们作为“调度”世界的介绍来研究一下

Python的标准库提供了一个模块,该模块完全封装了“接受命令的控制台应用程序”功能:请参阅

在该模块中,命令实际上是类的方法,它的子类
cmd.cmd
do_this
do_this
,等等,通过命名约定。上的示例是一个用于海龟图形的丰富的“控制台接受命令”,因此您可以使用它

从教学上讲,您可能希望从中给出的简单得多的示例开始——这是Python 2,但功能基本相同。这一系列优秀的示例需要稍加修改才能在Python3中运行,但应该不会太难

例如,考虑第一个问题:

import cmd

class HelloWorld(cmd.Cmd):
    """Simple command processor example."""

    def do_greet(self, line):
        print "hello"

    def do_EOF(self, line):
        return True

if __name__ == '__main__':
    HelloWorld().cmdloop()
do_EOF
是用户终止标准输入(Unix上的control-D)时发生的情况;如前所述

(在这种情况下,
返回True
终止程序)

要在Python 2中而不是在Python 3中运行此功能,只需更改一行:

        print "hello"
这必须成为

        print("hello")
因为
print
,它是Python 2中的一个语句,现在是Python 3中的一个函数


我发现位于的
cmd.py
源代码也很有启发性,我建议将它们作为“调度”世界的介绍来研究一下

您看过
cmd
模块了吗?我建议您使用以下方法:如果您只需要发送输入,您可能还需要查看
eval()
。一般来说,是的,解析用户的输入就是您正在做的事情。其他解决方案和库都是基于此构建的,并且可能会添加额外的功能或框架,这样您就可以更轻松地扩展它,而不必一直重复所有内容。您是否看过
cmd
模块?我建议您使用以下方法:如果您只需要发送输入,您可能还需要查看
eval()
。一般来说,是的,解析用户的输入就是您正在做的事情。其他解决方案和库都是基于此构建的,并且可能会添加额外的功能或框架,这样您就可以更轻松地扩展它,而无需一直重复所有内容。