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中的列表推导浅析
Apr 26 Python
利用Python的装饰器解决Bottle框架中用户验证问题
Apr 24 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
postman模拟访问具有Session的post请求方法
Jul 15 Python
Python3的unicode编码转换成中文的问题及解决方案
Dec 10 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
安装多个版本的TensorFlow的方法步骤
Apr 21 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
May 13 Python
python读取图片颜色值并生成excel像素画的方法实例
Feb 19 Python
Python机器学习实战之k-近邻算法的实现
Nov 27 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
基于mysql的论坛(7)
2006/10/09 PHP
PHP 的 __FILE__ 常量
2007/01/15 PHP
PHP获取当前文件所在目录 getcwd()函数
2009/05/13 PHP
php获取当前月与上个月月初及月末时间戳的方法
2016/12/05 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
Javascript valueOf 使用方法
2008/12/28 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
angularjs定时任务的设置与清除示例
2017/06/02 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
Python2与Python3的区别实例分析
2019/04/11 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
python小程序实现刷票功能详解
2019/07/17 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
python中的测试框架
2020/11/13 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
搬家公司的创业计划书
2014/01/01 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
森林防火工作方案
2014/02/14 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
2014年信息中心工作总结
2014/12/17 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
担保书怎么写 ?
2019/04/22 职场文书