使用Python的cmd模块中的stdin()函数从命令行获取用户输入并进行处理
发布时间:2024-01-02 07:51:41
在Python中,可以使用cmd模块来创建一个交互式的命令行界面。这个模块提供了一个Cmd类,可以用来定义自己的命令行应用程序。
要使用stdin()函数获取用户输入,需要继承 Cmd 类并在子类中重写 cmdloop() 方法。下面是一个使用stdin()函数的例子:
import cmd
class MyCmd(cmd.Cmd):
def do_hello(self, line):
"""Say hello to the user"""
name = input('What is your name? ')
print(f'Hello, {name}!')
def do_quit(self, line):
"""Quit the program"""
print('Quitting...')
return True
if __name__ == '__main__':
cmd = MyCmd()
cmd.cmdloop()
在上面的例子中,我们定义了一个 MyCmd 类,继承自 cmd.Cmd 类。在 MyCmd 类中,我们重写了 do_hello() 方法和 do_quit() 方法。
do_hello() 方法用来获取用户输入,并打印出问候语。通过调用 input() 函数,我们可以在命令行中提示用户输入名字,并将用户输入存储到 name 变量中。然后,我们使用 print() 函数打印出问候语。
do_quit() 方法用于退出程序。我们打印出退出消息,并在方法中返回 True,以退出 cmdloop() 循环。
在主程序中,我们创建了 MyCmd 实例 cmd,并调用 cmd.cmdloop() 方法来进入命令行循环。用户可以在命令行中输入 hello 来执行 do_hello() 方法,输入 quit 来执行 do_quit() 方法。
运行这段代码,你将看到一个命令行界面,在该界面中可以输入指令,例如:
(Cmd) hello What is your name? John Hello, John! (Cmd) quit Quitting...
这是一个基本的例子,你可以根据自己的需要来扩展和修改这个命令行应用程序。你可以添加更多的命令、进行更复杂的逻辑处理,以满足你的需求。
