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+tkinter使用40行代码实现计算器功能
Jan 30 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
python实现ip代理池功能示例
Jul 05 Python
python读写csv文件实例代码
Jul 05 Python
python定间隔取点(np.linspace)的实现
Nov 27 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
Python实现子类调用父类的初始化实例
Mar 12 Python
python实现简单坦克大战
Mar 27 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
python 定义函数 返回值只取其中一个的实现
May 21 Python
Python实现将多张图片合成MP4视频并加入背景音乐
Apr 28 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
PHP的FTP学习(一)
2006/10/09 PHP
我的论坛源代码(七)
2006/10/09 PHP
php网站来路获取代码(针对搜索引擎)
2010/06/08 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
php简单smarty入门程序实例
2015/06/11 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
javascript Excel操作知识点
2009/04/24 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
JavaScript常用小技巧小结
2014/12/29 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
JS使用onerror捕获异常示例
2016/08/03 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Python学习之asyncore模块用法实例教程
2014/09/29 Python
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
python创建文件备份的脚本
2018/09/11 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
Python+opencv 实现图片文字的分割的方法示例
2019/07/04 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
python如何更新包
2020/06/11 Python
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
学前教育求职自荐信范文
2013/12/25 职场文书
投标授权委托书范文
2014/08/02 职场文书
销售团队获奖感言
2014/08/14 职场文书
财务审计整改报告
2014/11/06 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫