Python 学习日知录(六)- 简单好用的命令行框架cmd
出差几日,终于回来继续学习。
话说Python好用,主要在于其自带的模块都很实用,犹如一把瑞士军刀,轻便、锋利又功能齐全。一直想找一个框架来实现我的命令行调试小工具,搜索一番便找到,而且居然是Python的标准模块,这就是cmd模块。
首先,作为命令行,有如下几个基本要素:
- 命令
- 帮助
- 提示符
- 启动信息
下面以一段代码来介绍cmd是如何实现这些要素的:
# -*- coding:utf8 -*-
import cmd # 导入cmd模块
version = '1.0.0'
class MyCmd(cmd.Cmd): # Cmd是以面向对象设计的
def __init__(self):
cmd.Cmd.__init__(self)
self.intro = 'welcome to Python World' # 定义启动时打印的信息
self.prompt = '>' # 定义提示符
def do_version(self, arg): # 定义'version'命令
'''
version : show the version
'''
print version
def do_name(self, arg): # 定义'name'命令
print 'test cmd'
def help_version(self): # 定义'version'命令的帮助信息
print 'show the version'
def help_name(self): # 定义'name'命令的帮助信息
print 'show the name'
def do_quit(self, arg): #定义退出命令'quit',退出程序
return True # 函数返回True,则干净退出程序
def help_quit(self): # 定义'quit'命令的帮助信息
print "syntax: quit -- terminatesthe application"
do_q = do_quit # 定义'quit'命令的别名'q'
if __name__ == '__main__':
myCmd = MyCmd() # 创建一个MyCmd的实例
myCmd.cmdloop() # 启动cmd循环
可以看到,do_ +命令名,定义了命令;而help_ +命令名,则定义帮助信息。
cmd自带一套帮助系统,直接打help会打印所有的命令,打help + cmd_name,则答应了对应命令的帮助信息。
下次计划学一点命令行的高级知识,让自己的命令行程序变得酷一些。
参考资料:
1. Python中cmd模块的使用说明