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多线程同步Lock、RLock、Semaphore、Event实例
Nov 21 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
python利用rsa库做公钥解密的方法教程
Dec 10 Python
Python3.7中安装openCV库的方法
Jul 11 Python
对python3新增的byte类型详解
Dec 04 Python
pandas计数 value_counts()的使用
Jun 24 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
Python爬虫抓取指定网页图片代码实例
Jul 24 Python
Pandas对每个分组应用apply函数的实现
Dec 13 Python
python中取整数的几种方法
Nov 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
Zerg兵种介绍
2020/03/14 星际争霸
php下使用以下代码连接并测试
2008/04/09 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
node.js操作mysql(增删改查)
2015/07/24 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
2016/04/18 Javascript
canvas简单快速的实现知乎登录页背景效果
2017/05/08 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
针对Vue路由history模式下Nginx后台配置操作
2020/10/22 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
python读写配置文件操作示例
2019/07/03 Python
利用Python实现kNN算法的代码
2019/08/16 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python中图像通道分离与合并实例
2020/01/17 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
英国最大的在线亚洲杂货店:Red Rickshaw
2020/03/22 全球购物
说明书怎么写
2014/05/06 职场文书
小学节能减排倡议书
2014/05/15 职场文书
安全责任书模板
2014/07/22 职场文书
2014年度个人工作总结
2014/11/07 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
工作失误检讨书
2015/01/26 职场文书
金陵十三钗观后感
2015/06/04 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
平凡的世界读书笔记
2015/06/25 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书