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 相关文章推荐
Linux 发邮件磁盘空间监控(python)
Apr 23 Python
Python实现注册登录系统
Aug 08 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
对pandas通过索引提取dataframe的行方法详解
Feb 01 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
python爬虫添加请求头代码实例
Dec 28 Python
详解python破解zip文件密码的方法
Jan 13 Python
如何用Matplotlib 画三维图的示例代码
Jul 28 Python
python调用百度AI接口实现人流量统计
Feb 03 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
Python torch.flatten()函数案例详解
Aug 30 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 301转向实现代码
2008/09/18 PHP
PHP 面向对象详解
2012/09/13 PHP
Linux编译升级php的详细方法
2013/11/04 PHP
Textarea根据内容自适应高度
2013/10/28 Javascript
用js判断输入是否为中文的函数
2014/03/10 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
Vue+element-ui 实现表格的分页功能示例
2018/08/18 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
初步解析Python中的yield函数的用法
2015/04/03 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
Django安装配置mysql的方法步骤
2018/10/15 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
keras 使用Lambda 快速新建层 添加多个参数操作
2020/06/10 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
html5的localstorage详解
2017/05/09 HTML / CSS
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
求高于平均分的学生学号及成绩
2016/09/01 面试题
运动会四百米广播稿
2014/01/19 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
2014年村委会工作总结
2014/11/24 职场文书
培根随笔读书笔记
2015/07/01 职场文书
高中政治教师教学反思
2016/02/23 职场文书
python中os.path.join()函数实例用法
2021/05/26 Python