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模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
Python最火、R极具潜力 2017机器学习调查报告
Dec 11 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
May 11 Python
详解python之协程gevent模块
Jun 14 Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 Python
在django中,关于session的通用设置方法
Aug 06 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
pandas 对group进行聚合的例子
Dec 27 Python
解决python 找不到module的问题
Feb 12 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
如何基于python对接钉钉并获取access_token
Apr 21 Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 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 exif扩展方法开启详解
2014/07/28 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
javascript 学习之旅 (1)
2009/02/05 Javascript
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
基于javascript实现判断移动终端浏览器版本信息
2014/12/09 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
2019/08/09 Javascript
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
使用python实现省市三级菜单效果
2016/01/20 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
学习Django知识点分享
2019/09/11 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
奥地利度假券的专家:we-are.travel
2019/04/10 全球购物
行政助理求职自荐信
2013/10/26 职场文书
销售心得体会
2014/01/02 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
推广活动策划方案
2014/08/23 职场文书
感谢信范文大全
2015/01/23 职场文书
新学期感想
2015/08/10 职场文书
反四风问题学习心得体会
2016/01/22 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android