Python基于正则表达式实现检查文件内容的方法【文件检索】


Posted in Python onAugust 30, 2017

本文实例讲述了Python基于正则表达式实现检查文件内容的方法分享给大家供大家参考,具体如下:

这个是之前就在学python,欣赏python的小巧但是功能强大,是连电池都自带的语言。平时工作中用Java ,觉得python在日常生活中比java用处要大,首先语法没那么复杂,特别是io的操作,java里要写一大坨没关的代码。还有就是不用编译,而且linux系统默认都会自带。

这次遇到的问题是工作当中想要迁移一个系统中的一个模块,这个时候需要评估模块里的代码有没有对其他代码强依赖,就是有没有import 其他模块的代码。如果通过人肉来坐,少量的文件还好,如果有大量的文件实在是很悲剧。这个时候就想起可以用pytho来检索文件,通过正则表达式分析文件内容,把有问题的文件名打印出来就可以了。

import os
import os.path
import re
packDir='/**/src/main/java/com/hz/yk/auction'
p1=re.compile(r"yk\.((?!auction)\w)+\b")
p2=re.compile(r"yk\.((?!domain)\w)+\b")
p3=re.compile(r"yk\.((?!utils)\w)+\b")
def processDirectory(args,dirname,filenames):
  # print 'Directory',dirname
  for filename in filenames:
    if os.path.splitext(filename)[1]=='.java':
      # print 'file',filename
      fileObj=open(dirname+ "/"+filename)
      hasOther=False
      for line in fileObj:
        if p1.search(line) and p2.search(line) and p3.search(line):
          hasOther=True
          print line
      if hasOther:
        print 'file:',filename
def search():
  os.path.walk(packDir,processDirectory,None)
if __name__ == '__main__':
  search()

因为希望看到应用其他模块的代码,所以排除掉自己的模块名auction和公共的应用domain,utils 。对剩下的符合条件的打印出import这句和文件名sikuli

Python 相关文章推荐
python结合shell查询google关键词排名的实现代码
Feb 27 Python
Ubuntu下安装PyV8
Mar 13 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
Jan 15 Python
Python实现XML文件解析的示例代码
Feb 05 Python
在Python中使用Neo4j的方法
Mar 14 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
Python中一些深不见底的“坑”
Jun 12 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
在OpenCV里实现条码区域识别的方法示例
Dec 04 Python
解决c++调用python中文乱码问题
Jul 29 Python
python os.listdir()乱码解决方案
Jan 31 Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 #Python
Python导入模块时遇到的错误分析
Aug 30 #Python
简单学习Python多进程Multiprocessing
Aug 29 #Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 #Python
Python实现文件内容批量追加的方法示例
Aug 29 #Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 #Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 #Python
You might like
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
PHP学习 运算符与运算符优先级
2008/06/15 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
PHP之短标签开启设置
2013/06/17 PHP
php对文件进行hash运算的方法
2015/04/03 PHP
在PHP语言中使用JSON和将json还原成数组的方法
2016/07/19 PHP
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
Jquery Autocomplete 结合asp.net使用要点
2010/10/29 Javascript
JQuery打造省市下拉框联动效果
2014/05/18 Javascript
JS替换字符串中字符即替换全部而不是第一个
2014/06/04 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
小程序实现分类页
2019/07/12 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
python创建文本文件的简单方法
2020/08/30 Python
python如何实现递归转非递归
2021/02/25 Python
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
简述安装Slackware Linux系统的过程
2012/05/08 面试题
高级技校毕业生自荐信
2013/11/18 职场文书
生产现场工艺工程师岗位职责
2013/11/28 职场文书
中学门卫岗位职责
2013/12/26 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
超市周年庆活动方案
2014/08/16 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书