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 set集合类型操作总结
Nov 07 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
python暴力解压rar加密文件过程详解
Jul 05 Python
wxPython实现绘图小例子
Nov 19 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
Python实现代码块儿折叠
Apr 15 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
python中的测试框架
Nov 13 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 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/06/21 PHP
排序算法之PHP版快速排序、冒泡排序
2014/04/09 PHP
php获取数组元素中头一个数组元素值的实现方法
2014/12/20 PHP
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
小程序实现多列选择器
2019/02/15 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
将字典转换为DataFrame并进行频次统计的方法
2018/04/08 Python
对python内置map和six.moves.map的区别详解
2018/12/19 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
python中time.ctime()实例用法
2021/02/03 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
Html5移动端弹幕动画实现示例代码
2018/08/27 HTML / CSS
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
Clarks西班牙官方在线商店:clarks鞋
2019/05/03 全球购物
工程造价专业大学生自荐信
2013/10/01 职场文书
大学同学聚会邀请函
2014/01/29 职场文书
教师产假请假条范文
2014/04/10 职场文书
干部考核评语
2014/04/29 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
2016年党员创先争优承诺书
2016/03/25 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android