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 23 Python
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
Python算法之图的遍历
Nov 16 Python
在python 中实现运行多条shell命令
Jan 07 Python
python实现植物大战僵尸游戏实例代码
Jun 10 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
使用python脚本自动创建pip.ini配置文件代码实例
Sep 20 Python
python使用正则来处理各种匹配问题
Dec 22 Python
Python bisect模块原理及常见实例
Jun 17 Python
Python数据分析之pandas函数详解
Apr 21 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
PhpStorm terminal无法输入命令的解决方法
2016/10/09 PHP
php中序列化与反序列化详解
2017/02/13 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
求数组最大最小值方法适用于任何数组
2013/08/16 Javascript
各种常用的JS函数整理
2013/10/25 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
js性能优化技巧
2015/11/29 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
[48:32]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs VG
2018/04/01 DOTA
详解Python3中yield生成器的用法
2015/08/20 Python
Python学习之Anaconda的使用与配置方法
2018/01/04 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
五分钟学会怎么用python做一个简单的贪吃蛇
2021/01/12 Python
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
Hotels.com香港酒店网:你的自由行酒店订房专家
2018/01/22 全球购物
新驾驶员个人自我评价
2014/01/03 职场文书
大学生咖啡店创业计划书
2014/01/21 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
国际商贸专业自荐信
2014/06/09 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
表扬信范文
2015/05/04 职场文书
2016年大学生社会实践心得体会
2015/10/09 职场文书
CSS3 制作精美的定价表
2021/04/06 HTML / CSS
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python