`
zyueqi
  • 浏览: 142746 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python 中的cmd模块学习

阅读更多

Python中的cmd模块类型提供了一个创建命令行解析器的框架。简单的来说,可以继承Cmd来创建命令行界面,然后对所有想处理的命令command执行do_command方法。默认情况下,它使用readline来进行交互式操作、命令行编辑和命令完成。

 

使用cmd创建的命令行解释器循环读取输入的所有行并且解析它们,然后发送命令给一个合适的命令处理器。输入行为解析成两个部分:命令和参数。如果用户输入cmd param,它解释成命令cmd和参数param,然后使用param作为参数调用do_cmd方法。如果do_cmd命令处理器返回真,那么程序会干净的退出,否则会继续等待下一个命令的输入。

 

关于Cmd的使用,通常都是创建自己的类型,继承于CMd,然后使用Cmd的方法来实现自己的功能,一个超简单的例子:

from cmd import Cmd
import sys

class CmdTest(Cmd):
    
    def __init__(self):            #初始基础类方法
        Cmd.__init__(self)
        
    def help_hello(self):
        print("输入hello 参数,将执行o_hello方法,输出参数值")
    
    def do_hello(self,line):
        print("do_hello:",line)
    
    def help_exit(self):          #以help_*开头的为帮助
        print("输入exit退出程序")
    
    def do_exit(self,line):       #以do_*开头为命令
        print("Exit:",line)
        sys.exit()
        
if __name__ =="__main__":
    cmd=CmdTest()
    cmd.cmdloop()

运行的结果:


 

介绍Cmd一些常用的方法

(1)cmdloop():类似与Tkinter的mainloop,运行Cmd解析器;

(2)onecmd(str):读取输入,并进行处理,通常不需要重载该函数,而是使用更加具体的do_command来执行特定的命名;

(3)emptyline():当输入空行时调用该方法;

(4)default(line):当无法识别输入的command时调用该方法;

(5)completedefault(text,line,begidx,endidx):如果不存在针对的complete_*()方法,那么会调用该函数

(6)precmd(line):命令line解析之前被调用该方法;

(7)postcmd(stop,line):命令line解析之后被调用该方法;

(8)preloop():cmdloop()运行之前调用该方法;

(9)postloop():cmdloop()退出之后调用该方法;

 

  • 大小: 6.9 KB
分享到:
评论

相关推荐

    Python使用CMD模块更优雅的运行脚本

    本文实例讲述了Python使用CMD模块更优雅的运行脚本的方法。分享给大家供大家参考。具体分析如下: 平时由于经常给测试人员调试一些东西,虽然写了一些脚本,感觉还是不方便。 python的cmd模块提供的更优雅的方式,很...

    python itchat模块通过微信控制电脑 截屏、关机、监听键盘、执行cmd命令、启动关闭软件....

    python 通过itchat模块 通过登录微信后 通过指令控制电脑 截屏、关机、pyhook监听键盘、执行cmd命令、启动关闭软件、照相获取当前用户等等自动化

    执行Python程序时模块报错问题

    1. 在执行python程序时遇到 ‘ModuleNotFoundError: No module named ‘xxxxx” : 例如: 图片中以导入第三方的 ...打开cmd输入 'pip list' 先查看安装了哪些模块: 这里并没有安装所需要的requests模块,接着输

    python模块详解

    python模块详解 各个模块的详解 核心模块 1.1. 介绍 1.2. _ _builtin_ _ 模块 1.3. exceptions 模块 1.4. os 模块 1.5. os.path 模块 1.6. stat 模块 1.7. string 模块 1.8. re 模块 1.9. math 模块 1.10....

    python3.6及其各常用模块

    python直接安装即可,成功后,建议将各模块放置于python安装目录某处(如scripts)。 模块安装:如打开cmd进入管理员界面,输入cd +模块存放位置,enter后进入模块存放路径,使用pip install+文件全名(包括后缀名)...

    解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题

    Python – paramiko 模块远程执行ssh 命令 nohup 不生效的问题解决 1、使用 paramiko 模块ssh 登陆到 linux 执行nohup命令不生效 # 执行命令 def command(ssh_config, cmd, result_print=None, nohup=False): ssh ...

    python_openvc4.0.1模块

    适用于python3的最新openvc4.0.1模块,下载后在本地安装 pip install 包的位置(如:C:\download\xxx.whl) 比如我直接默认地址安装的python,在D盘根目录下新建了一个pythonlib文件夹,并把视觉库复制了进去 然后以...

    Python模块:tkinter

    最近我同学在做一个聊天程序,服务器已经全部完成了,客户端也已经使用CMD版本的进行过测试了,为了做的好一点,需要弄一个图形用户界面的客户端,Python编写图形界面的模块有好多,这里使用的是Python内置的模块...

    python执行CMD指令,并获取返回的方法

    如下所示: result = os.popen('ps aux') ... 您可能感兴趣的文章:如何安装并使用conda指令管理python环境python如何以表格形式打印输出的方法示例Python3内置模块pprint让打印比print更美观详解python实现顺时

    Python中subprocess模块用法实例详解

    本文实例讲述了Python中subprocess模块用法。分享给大家供大家参考。具体如下: 执行命令: >>> subprocess.call([ls, -l]) 0 >>> subprocess.call(exit 1, shell=True) 1 测试调用系统中cmd命令,显示命令执行的...

    Python如何使用OS模块调用cmd

    主要介绍了Python如何使用OS模块调用 cmd,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Python中sys模块功能与用法实例详解

    本文实例讲述了Python中sys模块功能与用法。分享给大家供大家参考,具体如下: sys-系统特定的参数和功能 该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。 sys.argv 传递...

    命令行快捷运行python模块

    ...\Anaconda3\Lib\site-packages 中 extras.pth,写人路径。...cmd中 用python -m 模块名称,可以直径调用。因为写到了sys.path中;相反若在python运行中写入,则关闭python后,该路径设置会消失。

    Python第三方模块(库、包)安装、卸载与查看

    若安装了多个python版本,在cmd中使用 py 启动器命令配合 -m 开关选项,为指定Python版本安装模块(库、包): py -X.Y -m pip install 模块(库、包)名 其中X.Y代表Python版本,多余的部分舍弃如3.6.5,取3.6,3.

    python安装模块如何通过setup.py安装(超简单)

    以上所述是小编给大家介绍的python安装模块如何通过setup.py安装,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的! 您可能感兴趣的文章:python的构建工具setup.py的方法使用示例使用...

    Python代码模块加密器:setup.py

    先使用“pip install Cython”,然后将这个文件放在你想要加密的.py文件所在的文件夹,手动将里面的mytest和mytest.py改成你想要加密的.py文件的名称,然后使用cmd,cd到该文件夹后,输入命令"python setup.py build...

    Python完成Windows下端口转发

    用Python实现简单的端口转发功能,即使用pywin32模块,执行net interface命令实现端口转发,脚本运行可以自动获取管理员全权限。类似的cmd命令均可以由此脚本调用,修改command命令即可。 PS:不知为啥默认5积分。...

    Python第三方Window模块文件的几种安装方法

    python2与python3安装模块的方法相似,值得注意的是,你在python2中安装的模块,用python3是无法调用的,我仅以python3为例! Linux和windows下安装模块的方法一致,以下以window为例,输入cmd打开windows终端。 一...

Global site tag (gtag.js) - Google Analytics