cmd
库是Python的一个命令行接口库,它允许你轻松地创建交互式命令行应用程序
cmd.Cmd
类创建一个子类,该子类继承自cmd.Cmd
。import cmd
class MyCLI(cmd.Cmd):
prompt = "mycli> "
do_
开头,后跟命令的名称。class MyCLI(cmd.Cmd):
prompt = "mycli> "
def do_hello(self, arg):
"""Say hello to the user."""
print("Hello, {}!".format(arg))
def do_quit(self, arg):
"""Quit the application."""
print("Goodbye!")
return True
do_exit
方法以退出应用程序。这个方法在用户输入exit
或quit
时被调用。class MyCLI(cmd.Cmd):
prompt = "mycli> "
def do_hello(self, arg):
"""Say hello to the user."""
print("Hello, {}!".format(arg))
def do_quit(self, arg):
"""Quit the application."""
print("Goodbye!")
return True
def do_exit(self, arg):
"""Exit the application."""
print("Goodbye!")
return True
cmd.Cmd
实例并运行它。if __name__ == "__main__":
cli = MyCLI()
cli.cmdloop()
现在,你已经创建了一个简单的命令行应用程序,可以使用do_hello
和do_quit
命令。你可以根据需要添加更多命令处理函数。
如果你需要在命令之间保存和加载状态,可以使用实例变量。例如,你可以在do_hello
方法中将用户的名字保存在实例变量中,然后在其他命令中使用它。
class MyCLI(cmd.Cmd):
prompt = "mycli> "
def __init__(self):
super().__init__()
self.name = None
def do_hello(self, arg):
"""Say hello to the user."""
self.name = arg
print("Hello, {}!".format(self.name))
def do_greet(self, arg):
"""Greet the user by name."""
if self.name:
print("Hello, {}!".format(self.name))
else:
print("Hello, guest!")
def do_quit(self, arg):
"""Quit the application."""
print("Goodbye!")
return True
def do_exit(self, arg):
"""Exit the application."""
print("Goodbye!")
return True
在这个例子中,我们在do_hello
方法中将用户的名字保存在self.name
实例变量中,然后在do_greet
方法中使用它。当用户输入hello
命令时,他们将看到一条个性化的问候消息。