python cmd库的简易使用

简单记录一下,竟然这么简单的方法就能在 python 里面实现一个简单的交互式命令行以前从来没有尝试过。

上一个完整的例子:

import cmd
import osimport readline

readline.parse_and_bind(‘tab: complete‘)

class CLI(cmd.Cmd):
    def __init__(self):
        cmd.Cmd.__init__(self)
        self.prompt = "Miller2 > "  # define command prompt

    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 help_dir(self):
        print "syntax: dir path -- displaya list of files and directories"

    def do_quit(self, arg):
        return True

    def help_quit(self):
        print "syntax: quit -- terminatesthe application"

    # define the shortcuts
    do_q = do_quit

if __name__ == "__main__":
    cli = CLI()
    cli.cmdloop(intro="welcome to axiba")

使用 readline 来实现了命令交互 tab 提示补全的功能。 然后是 CLI 类继承了 cmd.Cmd。

self.prompt 用于指定提示符样式。

交互命令行的规则定义就是 do_cmd 就可以在运行的使用 cmd 命令。如果出错可以调用自己定义的数据。

backup 一份常用函数,可以根据这些钩子函数来达到自己想要的交互效果:

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

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

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

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

(5)completedefault(text,line,begidx,endidx):如果不存在针对的complete_*()方法,那么会调用该函数,该函数主要是用于tab补充,且只能在linux下使用。

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

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

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

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

(10)help_command():对command命令的说明,其中command为可变字符

reference:

https://www.cnblogs.com/r00tuser/p/7515136.html  简单认识python cmd模块

原文地址:https://www.cnblogs.com/piperck/p/8480198.html

时间: 2024-08-30 07:56:04

python cmd库的简易使用的相关文章

python之cmd库学习

一: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 interf

python 常库介绍及安装方法

文大赛,秀绝招,赢无人机! python 常库介绍及安装方法 标签: PYTHON库 2016-10-13 15:32 798人阅读 评论(0) 收藏 举报  分类: 其他(33)  bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctypes:用来调用动态链接库DBUtils:数据库连接池django:一个WEB frameworkdocutils:用来写文档的dpkt:数据包的解包和组包My

python+paramiko库+svn写的自动化部署脚本

第一篇博文 直接开门见山的说了. 这是件什么事?:每次部署都是复制本地的文件粘贴到服务器端,因为路径复杂,所以费时且手工容易出漏洞. 一直在想有什么办法可以解决这种,因为以前在微软的一个牛人同事做过一个脚本实现自动化部署,正巧最近在学习python,就用python写一个自动化得脚本吧. 1.首先是环境:SVN的版本控制,windows的本地,linux服务器. 2.思路:应用python,代入cmd脚本,加上强大的python库来做这件事. 3.再详细的思路: 第一步:利用SVN的cmd下得脚

Python标准库(机器汉化)

Python标准库 虽然"Python语言参考"描述了Python语言的确切语法和语义,但该库参考手册描述了使用Python分发的标准库.它还介绍了Python发行版中通常包含的一些可选组件. Python的标准库非常广泛,提供了下面列出的长表所示的各种设施.该库包含内置模块(用C语言编写),提供对Python程序员无法访问的系统功能(如文件I / O)的访问,以及使用Python编写的模块,为出现的许多问题提供标准化的解决方案日常编程.其中一些模块是明确设计的,通过将特定平台抽象为平

Windows下如何安装python第三方库lxml

lxml是个非常有用的python库,它可以灵活高效地解析xml,与BeautifulSoup.requests结合,是编写爬虫的标准姿势. 参考 Windows下如何安装python第三方库lxml 文章记于16年,此篇文章对此更新并加以细节解释 工具/原料 + python + pip +我的电脑 win7 + 64位 方法概述 以下步骤的前提是: 已安装python, 已安装好pip, 已将python安装目录下的scripts目录(如D:\Python27\Scripts)添加到系统环境

Python 标准库一览(Python进阶学习)

转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连应该用哪个类库都不知道,还要去百度(我不信就我一个人那么尴尬TvT) 好像自从学习了基础的Python 语法,看了几本Python经典的书,知道了一些常见的类库.在几本语法应用熟练的情况下,如果不做题,像是无法显著的提高自己的知识储备了(所以叫你去做python challenge啊,什么都不会~~

QuantLib金融库的简易安装

最近在弄毕设,研究关于固定收益债券定价方面的知识,需要使用到QuantLib这个Python金融库,但是这是一个C++编译的库,官网也只给出了源代码,安装起来十分繁琐,所以在网上找了一个简易的安装方法,给大家推荐一下. 第一步 下载别人已经编译好的py包 在TA-Lib这个网站上找到别人编译好的QuantLib安装包: 为了选择合适的安装包,我们先了解包的命名含义,比如这个: QuantLib_Python-1.11-CP36-cp36m-win32.whl 其中cp36的含义就是Python

python第三方库自动安装脚本

#python第三方库自动安装脚本,需要在cmd中运行此脚本#BatchInstall.pyimport oslibs = {"numpy","matplotlib","pillow","sklearn","requests",\ "jieba","beautifulsoup4","wheel","networkx","

史上最详细 Python第三方库添加方法 and 错误解决方法

(1):如何添加python第三方库(方法一): File ->> Settings... ->> Project Interpreter (2):如何添加python第三方库(方法二): 步骤: 1.Win键+R ,输入"cmd" 调出命令窗口: 2.输入:python -m pip install --upgrade pip 先升级一下pip安装命令,否则可能会安装第三方库和插件时失败: 3.安装你需要的第三方库,例如:pywin32.   输入:pip i