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中的__slots__使用示例
Feb 26 Python
在Linux下调试Python代码的各种方法
Apr 17 Python
python根据京东商品url获取产品价格
Aug 09 Python
Python的collections模块中namedtuple结构使用示例
Jul 07 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
Python3爬楼梯算法示例
Mar 04 Python
python socket通信编程实现文件上传代码实例
Dec 14 Python
pyqt5 QlistView列表显示的实现示例
Mar 24 Python
Java Unsafe类实现原理及测试代码
Sep 15 Python
如何利用python 读取配置文件
Jan 06 Python
java关于string最常出现的面试题整理
Jan 18 Python
Python日志模块logging用法
Jun 05 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制作静态网站的模板框架(一)
2006/10/09 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
js压缩利器
2007/02/20 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
jquery easyui使用心得
2014/07/07 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
深入理解Javascript中的valueOf与toString
2017/01/04 Javascript
jQuery基于ajax实现页面加载后检查用户登录状态的方法
2017/02/10 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
小程序登录之支付宝授权的实现示例
2019/12/13 Javascript
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Tensorflow 多线程设置方式
2020/02/06 Python
Python列表操作方法详解
2020/02/09 Python
Python接口测试数据库封装实现原理
2020/05/09 Python
python设置表格边框的具体方法
2020/07/17 Python
Ref与out有什么不同
2012/11/24 面试题
大学活动策划书范文
2014/01/10 职场文书
保险专业大学生职业规划书
2014/03/03 职场文书
区域销售经理岗位职责
2015/04/02 职场文书
2016年主题党日活动总结
2016/04/05 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS
图神经网络GNN算法
2022/05/11 Python