这书看得挺顺的。

按着思路学习软件开发的主流思想。。

cdctools.py

# _*_ coding: utf-8 _*_
import os,sys

def cdWalker(CDROM, cdcfile):
    export = ""
    for root, dirs, files in os.walk(CDROM):
        export += formatCDinfo(root,dirs,files)
        open(cdcfile,'w').write(export)

def cdcGrep(cdcpath, keyword):
    filelist = os.listdir(cdcpath)
    for cdc in filelist:
        if ".cdc" in cdc:
            cdcfile = open(cdcpath + cdc)
            for line in cdcfile.readlines():
                if keyword in line:
                    print(line)
def formatCDinfo(root,dirs,files):
    export = "\n" + root + "\n"
    for d in dirs:
        export += "-d " + root + d + "\n"
    for f in files:
        export += "-f %s %s \n" %(root,f)
    export += "=" * 70

    return export

if __name__ == '__main__':
    CDROM = 'E:\\TDDOWNLOAD\\'
    cdWalker(CDROM,'cdc.cdc')
'''
if sys.argv[1] == '-e':
    cdWalker(CDROM, sys.argv[2])
    print("记录文件夹 %s 信息内容 到 %s" % (CDROM, sys.argv[2]))
else:
    print('PYCDC使用方式:
        python pycdc.py -e mycdc1-1.cdc
        将光盘内容记录到mycdc1-1.cdc
        ')
'''

pycdc-v-0.5.py

# _*_ coding: utf-8_*_
import sys, cmd
from cdctools import *

class PyCDC(cmd.Cmd):
    def __init__(self):
        cmd.Cmd.__init__(self)
        self.CDROM = 'E:\\TDDOWNLOAD\\'
        self.CDDIR = 'cdc\\'
        self.prompt = "(PyCDC)>"
        self.intro = '''PyCDC0.5使用说明:
        dir 目录名 #指定保存和搜索目录,默认是"cdc"
        walk 文件名 #指定光盘信息文件名,使用"*.cdc"
        find 关键词 #使用在保存和搜索目录中遍历所有的.cdc文件,输出含有关键词的行
        ?            #查询
        EOF         #退出系统,也可以使用Ctrl + D(Unix)|Ctrl + Z(Dos/Windows)
        '''
    def help_EOF(self):
        print("退出程序 Quits the program")
    def do_EOF(self, line):
        sys.exit()

    def help_walk(self):
        print("扫描光盘内容 walk cd and export into *.cdc")
    def do_walk(self, filename):
        if filename == "":filename = input("请输入CDC文件名: ")
        print("扫描光盘内容到: '%s'" % filename)
        cdWalker(self.CDROM,self.CDDIR + filename)

    def help_dir(self):
        print("请拽定保存/搜索目录")
    def do_dir(self, pathname):
        if pathname == "":pathname = input("请输入指定保存/搜索目录: ")
        self.CDDIR = pathname
        print("指定保存/搜索目录:'%s' ; 默认是: '%s'" % (pathname, self.CDDIR))

    def help_find(self):
        print("搜索关键词")
    def do_find(self, keyword):
        if keyword == "":keyword = input("请输入搜索关键字: ")
        print("搜索关键词:%s" % keyword)
        cdcGrep(os.getcwd() + "\\" + self.CDDIR, keyword)

if __name__ == '__main__':
    cdc = PyCDC()
    cdc.cmdloop()

输出:

可爱的PYTHON,更新到0.5版本代码的更多相关文章

  1. 小菜学习Lucene.Net(更新3.0.3版本使用)

    花了两天的时间研究了下Lucene.Net 发现确实挺好玩.... 最新版本是3.0.3 (最后更新时间2012-10) 可惜3.0.3版本的Lucene.net无法和盘古分词 (最新版为2.3.1. ...

  2. Word图片上传控件(WordPaster)更新-2.0.15版本

    更新说明: 1.   增加对webp图片的支持,支持微信公众号图片的下载. 效果参考:http://www.ncmem.com/doc/view.aspx?id=9761f8ce4fe04d0ab0f ...

  3. ckeditor粘帖上传图片控件-更新-2.0.15版本

    泽优Word图片上传产品测试 泽优Word图片上传控件WordPaster2,基于php开发环境测试. 泽优软件官网Word图片上传产品介绍页面: http://www.ncmem.com/webap ...

  4. linux python 更新版本

    更新python: 第1步:更新gcc,因为gcc版本太老会导致新版本python包编译不成功 代码如下: #yum -y install gcc 系统会自动下载并安装或更新,等它自己结束 第2步:下 ...

  5. 解决IntelliJ IDEA 13更新FindBugs 0.9.993时JRE版本过低导致启动失败问题

    今晚更新FindBugs 0.9.992(FindBugs 2)至FindBugs 0.9.993(FindBugs 3)后,按要求重启IntelliJ IDEA 13.本想看看更新后多了哪些功能,结 ...

  6. Python开发工具Wing IDE发布5.0.1版本

    Wing IDE是一个跨平台的Python IDE,提供了一个专业代码编辑.自动编辑.自动完成.重构.强大的图形调试器.版本控制.单位测试.搜索及其他功能.目前已经成为最全面.最综合.最先进的智能化P ...

  7. Python 3.9.0 首个迭代版本发布了

    Python 3.9.0 alpha 1 发布了,这是 3.8 之后的首个 3.9 系列版本. ! 官方没有介绍新特性,也没有添加新模块,但是以下模块有所改进: ast asyncio curses ...

  8. 华为联运游戏审核驳回:在未安装或需更新HMS Core的手机上,提示安装,点击取消后,游戏卡屏(集成的6.1.0.301版本游戏SDK)

    问题描述 更新游戏SDK到6.1.0.301版本之后,游戏包被审核驳回:在未安装或需更新华为移动服务版本(HMS Core)的手机上,提示安装华为移动服务(HMS Core),点击取消,游戏卡屏.修改 ...

  9. MongoDBV3.0.7版本(shard+replica)集群的搭建及验证

    集群的模块介绍: 从MongoDB官方给的集群架构了解,整个集群主要有4个模块:Config Server.mongs. shard.replica set: Config Server:用来存放集群 ...

随机推荐

  1. ajax异步传输

    2015.12.7 ajax异步传输 1.ajax :不是一个新的技术. js(XMLHTTPRequest) html css dom xml 这里只是一个新的js的内置对象.这算是js想要变得流行 ...

  2. Vivado学习笔记_002

    经过几天的试用逐渐熟悉了vivado,和ISE相比vivado确实有了很多改良. 发现了以下几个特点:   1.数据格式统一了 在以往的设计中,保存数据的格式非常多.ISE有很多种格式的文件,在tra ...

  3. 【腾讯Bugly干货分享】RecyclerView 必知必会

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/CzrKotyupXbYY6EY2HP_dA 导语 Re ...

  4. POJ3974 Palindrome

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  5. YII中表单验证

    关于表单的验证有三种: 1.yii的客户端验证 2.yii的服务器端验证 3.yii的ajax验证 例如: 1.在表单对应的模型中定义一个rules方法(该方添加后,在表单提交时,将自动被调用) pu ...

  6. webstom 配置git 后左侧菜单栏配色调整

    ws配置了git进行版本管理,但是最近改了主题,发现左侧列表的文件名的颜色都是一个颜色了.我想要的是,对未提交的文件用颜色区分,新建的,修改的,冲突的分别设置不同的颜色,不知在哪里能设置,求助 老规矩 ...

  7. Unity3D NGUI学习(一)血条

    这次来讲讲Unity3D NGUI这个插件的学习,这个插件是收费的,不过去网上可以下载得很多可用版本.用来做用户的交互UI,学习起来比较简单 第一步,导入NGUI包 http://pan.baidu. ...

  8. ASP.NET CompareValidator 控件在VS2012中出错的问题

    CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较. -------如果输入控件为空,则不会调用任何验证函数,并且验证将成功.使用 Requi ...

  9. AudioStreamer使用之快速点击下/上一首按钮,音频会重复的问题解决。

    针对此问题,我的做法是在AudioStreamer.h文件新加入一个属性 @property (nonatomic,strong) NSURL *musicUrl; 和一个单例方法: +(id)sha ...

  10. C#微信开发之旅--自定义菜单

    上一篇说道基本信息的回复<C#微信开发之旅--基本信息的回复>,当中就说到文本信息的回复,其他信息的回复,可以参考下开发文档中回复信息的格式进行修改就可以. 下面来实现下自定义菜单.据我了 ...