python 文件查找及内容匹配方法


Posted in Python onOctober 25, 2018

需求:程序开发中有大量的接口,但在实际的使用中有一部分是没有使用的,在开发的程序中匹配这些接口名,找到哪些接口从没有使用过。将这些没有使用过的接口名保存下来。

代码结构:

结构解析:

1、find.py 是文件查找及匹配程序

2、input_files.txt是待匹配内容

文件格式如下:

3、result.txt 用于存放查找结果

格式同上

4、text.txt 用于测试的文档(可忽略)

实际代码:

find.py

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, re, datetime


class Find(object):
 def __init__(self, root, input_file):
  """
    --初始化
  """
  self.root = root # 文件树的根
  self.input_files = [] # 待查询的字符串集合
  self.files = [] # 待匹配的文件集合
  self.current = 0 # 正在匹配的文件集合的位置

  f = file(input_file, "r")
  old_content = f.read()
  f.close()
  self.input_files = old_content.split('\n') # 将待匹配字符串保存在数组中

 @staticmethod
 def find_file(self):
  """
  --查找文件,即遍历文件树将查找到的文件放在文件集合中
  :return:
  """
  # python中的walk方法可以查找到所给路径下的所有文件和文件夹,这里只用文件
  for root, dirs, files in os.walk(self.root, topdown=True):
   for name in files:
    self.files.append(os.path.join(root, name))
    #  print(os.path.join(root, name))
    # for name in dirs:
    #  print(os.path.join(root, name))

 @staticmethod
 def walk(self):
  """
  --逐一查找,并将结果存入result.txt文件中
  :param self:
  :return:
  """
  for item1 in self.files:
   Find.traverse_file(self, item1)
  try:
   result = ''
   for item3 in self.input_files:
    result += item3 + '\n'
   f = file("./result_files.txt", "w")
   f.write(result)
   f.close()
  except IOError, msg:
   print "Error:", msg
  else:
   print "OK"

 @staticmethod
 def traverse_file(self, file_path):
  """
  --遍历文件,匹配字符串
  :return:
  """
  f = file(file_path, "r")
  file_content = f.read()
  f.close()
  input_files = []
  for item2 in self.input_files:
   if item2:
    # 正则匹配,不区分大小写
    searchObj = re.search(r'(.*)' + item2 + '.*', file_content, re.M | re.I)
    if searchObj:
     continue
    else:
     input_files.append(item2)
  self.input_files = input_files


if __name__ == "__main__":

 print datetime.datetime.now()
 findObj = Find('F:\\projects', "./input_files.txt")
 findObj.find_file(findObj)
 findObj.walk(findObj)
 print datetime.datetime.now()

以上这篇python 文件查找及内容匹配方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
Jun 09 Python
Python命令行参数解析模块getopt使用实例
Apr 13 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
Python中type的构造函数参数含义说明
Jun 21 Python
python基础教程之匿名函数lambda
Jan 17 Python
对PyTorch torch.stack的实例讲解
Jul 30 Python
PyTorch基本数据类型(一)
May 22 Python
python实现websocket的客户端压力测试
Jun 25 Python
python Django 创建应用过程图示详解
Jul 29 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
如何把外网python虚拟环境迁移到内网
May 18 Python
Python 图片添加美颜效果
Apr 28 Python
利用python循环创建多个文件的方法
Oct 25 #Python
用python生成1000个txt文件的方法
Oct 25 #Python
Python爬虫之正则表达式的使用教程详解
Oct 25 #Python
python实现键盘控制鼠标移动
Nov 27 #Python
解决python 无法加载downsample模型的问题
Oct 25 #Python
python实现写数字文件名的递增保存文件方法
Oct 25 #Python
python hook监听事件详解
Oct 25 #Python
You might like
php笔记之:文章中图片处理的使用
2013/04/26 PHP
跟我学Laravel之路由
2014/10/15 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
Javascript select下拉框操作常用方法
2009/11/09 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
2013/08/21 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
jquery $.trim()方法使用介绍
2014/05/21 Javascript
js单独获取一个checkbox看其是否被选中
2014/09/22 Javascript
js实现class样式的修改、添加及删除的方法
2015/01/20 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
Vue学习之路之登录注册实例代码
2017/07/06 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
Django REST framework内置路由用法
2019/07/26 Python
python实现邮件自动发送
2019/08/10 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
市场营销职业生涯规划书范文
2014/01/12 职场文书
测试工程师职业规划书
2014/02/06 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
教师个人培训总结
2015/02/11 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
Python标准库pathlib操作目录和文件
2021/11/20 Python
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫