标签:python
一:cmd介绍
引用python的官方文档
The cmd class provides a simple framework for writing line-oriented command interpreters. These are often useful for test harnesses, administrative tools, and prototypes that will later be wrapped in a more sophisticated interface
cmd是一个提供一种基于面向命令行解释器编写程序的简单框架,这些通常用于测试工具,管理工具和稍后包裹在更加复杂的接口的原型非常有用。
二:cmd的基本使用
编写基于cmd的程序要注意以下几个点:
1.要继承自cmd.Cmd类 2.要先初始化父类 3.所有的命令都是以do_开头 4.所有的命令帮助都是以help_开头 5.一个命令对应一个帮助,如果没有帮助执行错误命令会出错。
三:cmd例子
# -*- coding: utf-8 -*- #!/usr/bin/python env #引入一些包 import sys import cmd import os #继承cmd.Cmd类 class Cli(cmd.Cmd): def __init__(self): #先初始化父类 cmd.Cmd.__init__(self) #设置命令行的提示符 self.prompt = "<zhang>" #第一个命令dir命令,带一个参数 def do_dir(self,arg): if not arg: self.help_dir() elif os.path.exists(arg): print "\n".join(os.listdir(arg)) else: print "No such pathexists" #带第二个命令 def do_quit(self,arg): return True #dir命令的帮助 def help_dir(self): print "syntax:dir path -- displaya list of files and directories" #help命令的帮助 def help_quit(self): print "syntax:quit --terminatesthe application" #命令的别名 do_q = do_quit if __name__ == "__main__": #开始执行cmd cli = Cli() #循环接受用户输入的命令 cli.cmdloop()
四:执行结果
[root@work python]# python cmdtest.py <zhang>dir syntax:dir path -- displaya list of files and directories <zhang>dir /tmp keyring-8MjWB8 ferret .ICE-unix keyring-6y9txT orbit-gdm .X11-unix keyring-e2WQQa .X0-lock pulse-weKNqpdx0HtQ keyring-AoiV8e keyring-i47ize keyring-BshjbU pulse-8TDHlwHPDc2j keyring-vIwkfE keyring-M5PGn7 keyring-pb8Q2x keyring-TME3bW keyring-gTw1ih .esd-0 <zhang>help Documented commands (type help <topic>): ======================================== dir quit Undocumented commands: ====================== help q <zhang>q
本文出自 “专注linux” 博客,请务必保留此出处http://forlinux.blog.51cto.com/8001278/1543099
标签:python
原文地址:http://forlinux.blog.51cto.com/8001278/1543099