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实现一个简单的MySQL类
Jan 07 Python
python正则分析nginx的访问日志
Jan 17 Python
遗传算法之Python实现代码
Oct 10 Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 Python
Python pymongo模块用法示例
Mar 31 Python
python中csv文件的若干读写方法小结
Jul 04 Python
python实现连续图文识别
Dec 18 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
Dec 18 Python
python模拟实现斗地主发牌
Jan 07 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 Python
Tensorflow 多线程设置方式
Feb 06 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
关于IIS php调用com组件的权限问题
2012/01/11 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
PHP eval函数使用介绍
2013/12/08 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
详解vue.js全局组件和局部组件
2017/04/10 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python文件和目录操作函数小结
2014/07/11 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
Jupyter中直接显示Matplotlib的图形方法
2018/05/24 Python
pytorch实现mnist数据集的图像可视化及保存
2020/01/14 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
django为Form生成的label标签添加class方式
2020/05/20 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
秋天的怀念教学反思
2014/04/28 职场文书
2014年学校安全工作总结
2014/11/13 职场文书
升学宴学生答谢词
2015/01/05 职场文书
旅游投诉信范文
2015/07/02 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
Spring Boot 排除某个类加载注入IOC的操作
2021/08/02 Java/Android
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript
JavaScript实现音乐播放器
2022/08/14 Javascript