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 相关文章推荐
Django小白教程之Django用户注册与登录
Apr 22 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
numpy库与pandas库axis=0,axis= 1轴的用法详解
May 27 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
keras:model.compile损失函数的用法
Jul 01 Python
详解python3类型注释annotations实用案例
Jan 20 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 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+mysql留言本源码
2009/11/11 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
phpfpm的作用和用法
2019/10/10 PHP
Javascript 面向对象特性
2009/12/28 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
JavaScript tab选项卡插件实例代码
2016/02/23 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
创建一个类Person的简单实例
2016/05/17 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
python dict.get()和dict['key']的区别详解
2016/06/30 Python
Python基础学习之常见的内建函数整理
2017/09/06 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
党员个人思想汇报
2013/12/28 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
高中历史教学反思
2014/02/08 职场文书
村党支部换届选举方案
2014/05/02 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
2015秋季田径运动会广播稿
2015/08/19 职场文书
小学英语教学反思范文
2016/02/15 职场文书
粗暴解决CUDA out of memory的问题
2021/05/22 Python
深入理解go slice结构
2021/09/15 Golang