博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CDays-2 习题一 (改进函数)及相关内容解析。Python 基础教程
阅读量:5901 次
发布时间:2019-06-19

本文共 1151 字,大约阅读时间需要 3 分钟。

在文中grep实现例子中,没有考虑子目录的处理,因为如果直接open目录进行读操作会出现错误,所以要求读者修改这个示例代码以便考虑到子目录这种特殊情况,然后把最后探索出的 cdcGrep()嵌入 pycdc-v0.5.py 实现完成版本的 PyCDC。

根据CDays-2 中的源码,我们可以知道他列出了所有文件,并没有列出子目录。

根据我们在之前做光盘遍历的经验,我们重写cdcGrep( )

根据path中的方法isdir,我们可以根据os.path.isdir( ) 的返回值确定是否为目录。

def cdcGrep(cdcpath,keyword):    '''光盘信息文本关键词搜索函式    @note: 使用最简单的内置字串匹配处理来判定是否有关键词包含    @param cdcpath: 包含*.cdc 文件的目录    @param keyword: 搜索的关键词    @return: 组织匹配好的信息到字典中导出成 searched.dump 文件    @todo: 可结合搜索引擎进行模糊搜索!    '''    expDict = {}    filelist = os.listdir(cdcpath)          # 搜索目录中的文件    cdcpath=cdcpath+"/"    for cdc in filelist:                    # 循环文件列表        if os.path.isdir(cdcpath+cdc):            cdcGrep(cdcpath+cdc,keyword) # 若是子目录,则递归调用完成查找        else:            cdcfile = open(cdcpath+cdc)         # 拼合文件路径,并打开文件            for line in cdcfile.readlines():    # 读取文件每一行,并循环                if keyword in line:             # 判定是否有关键词在行中                           #print line                  # 打印输出                    expDict[cdc].append(line)    #print expDict    pickle.dump(expDict,open("searched.dump","w"))

转载于:https://www.cnblogs.com/Kaysin/archive/2013/02/18/2915691.html

你可能感兴趣的文章
3-继承
查看>>
海归千千万 为何再无钱学森
查看>>
vue2.0 仿手机新闻站(六)详情页制作
查看>>
JSP----九大内置对象
查看>>
Java中HashMap详解
查看>>
delphi基本语法
查看>>
沙盒目录介绍
查看>>
260. Single Number III
查看>>
Hadoop生态圈-Kafka的完全分布式部署
查看>>
[MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1
查看>>
jQuery自动完成点击html元素
查看>>
[算法]基于分区最近点算法的二维平面
查看>>
webpack多页应用架构系列(七):开发环境、生产环境傻傻分不清楚?
查看>>
笨办法学C 练习1:启用编译器
查看>>
树的总结--树的性质(树的深度) leetcode
查看>>
nagios短信报警(飞信fetion20080522004-linrh4)
查看>>
【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!...
查看>>
linux 将大文件分成小文件
查看>>
CCNA- 距离矢量路由协议学习
查看>>
企业实践用户邮箱导入/导出(第2部分)
查看>>