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逐行读取文件内容的三种方法
Jan 20 Python
Python yield 小结和实例
Apr 25 Python
Python学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
python中set()函数简介及实例解析
Jan 09 Python
python列表的增删改查实例代码
Jan 30 Python
Python+OpenCV图片局部区域像素值处理改进版详解
Jan 23 Python
wxPython绘图模块wxPyPlot实现数据可视化
Nov 19 Python
tensorflow自定义激活函数实例
Feb 04 Python
使用python处理题库表格并转化为word形式的实现
Apr 14 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
Python如何使用正则表达式爬取京东商品信息
Jun 01 Python
python中if嵌套命令实例讲解
Feb 25 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 Google的translate API代码
2008/12/10 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
PHP基于单例模式编写PDO类的方法
2016/09/13 PHP
PHP接口继承及接口多继承原理与实现方法详解
2017/10/18 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
2016/11/16 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
NodeJS如何实现同步的方法示例
2018/08/24 NodeJs
Python自动重试HTTP连接装饰器
2015/04/28 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
在Pycharm中执行scrapy命令的方法
2019/01/16 Python
Python理解递归的方法总结
2019/01/28 Python
在python中求分布函数相关的包实例
2020/04/15 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
SQL里面如何插入自动增长序列号字段
2012/03/29 面试题
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
《鸿门宴》教学反思
2014/04/22 职场文书
综治工作心得体会
2014/09/11 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
接收函
2019/04/22 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android
MySQL数据库实验之 触发器和存储过程
2022/06/21 MySQL