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 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
安装python3的时候就是输入python3死活没有反应的解决方法
Jan 24 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
Aug 17 Python
详解Python可视化神器Yellowbrick使用
Nov 11 Python
Python如何基于Tesseract实现识别文字功能
Jun 05 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
详解python对象之间的交互
Sep 29 Python
Django创建一个后台的基本步骤记录
Oct 02 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转成EXE文件
2006/10/09 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
深入php多态的实现详解
2013/06/09 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
PHP中上传文件打印错误错误类型分析
2019/04/14 PHP
php array_map()函数实例用法
2021/03/03 PHP
Web 前端设计模式--Dom重构 提高显示性能
2010/10/22 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
当前页禁止复制粘贴截屏代码小集
2013/07/24 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
JS鼠标滚动分页效果示例
2017/07/05 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
js中json对象和字符串的理解及相互转化操作实现方法
2017/09/22 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
详解在vue-cli3.0中自定css、js和图片的打包路径
2019/08/26 Javascript
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
广告学毕业生求职信
2014/01/30 职场文书
表演方阵解说词
2014/02/08 职场文书
英语教学随笔感言
2014/02/20 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
节水标语大全
2014/06/11 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python