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简单生成随机数的方法示例
Mar 31 Python
关于Tensorflow中的tf.train.batch函数的使用
Apr 24 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
VSCode Python开发环境配置的详细步骤
Feb 22 Python
Python银行系统实战源码
Oct 25 Python
python安装gdal的两种方法
Oct 29 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
tensorflow实现测试时读取任意指定的check point的网络参数
Jan 21 Python
Python字符编码转码之GBK,UTF8互转
Feb 09 Python
python实现图片横向和纵向拼接
Mar 05 Python
Python实现一个优先级队列的方法
Jul 31 Python
接口自动化多层嵌套json数据处理代码实例
Nov 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
PHPMailer安装方法及简单实例
2008/11/25 PHP
解析php中mysql_connect与mysql_pconncet的区别详解
2013/05/15 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
php下载文件,添加响应头的简单实例
2016/09/22 PHP
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
Vue 3.0双向绑定原理的实现方法
2019/10/23 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
JS+CSS实现过渡特效
2021/01/02 Javascript
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
2021/01/22 Vue.js
python中ConfigParse模块的用法
2014/09/29 Python
python实现2048小游戏
2015/03/30 Python
K-means聚类算法介绍与利用python实现的代码示例
2017/11/13 Python
Python实现的字典值比较功能示例
2018/01/08 Python
python 显示数组全部元素的方法
2018/04/19 Python
PyQt5实现拖放功能
2018/04/25 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
基于python实现计算且附带进度条代码实例
2020/03/31 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
实习生个人的自我评价
2013/12/08 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
环保倡议书怎么写
2014/05/16 职场文书
五四青年节比赛演讲稿
2015/03/18 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书