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获取元素在数组中索引号的方法
Jul 15 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
Python读写Json涉及到中文的处理方法
Sep 12 Python
Python进程间通信之共享内存详解
Oct 30 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
如何利用python制作时间戳转换工具详解
Sep 12 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
Python3.5实现的三级菜单功能示例
Mar 25 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
Django后端发送小程序微信模板消息示例(服务通知)
Dec 17 Python
浅析Python模块之间的相互引用问题
Feb 26 Python
通过Python把学姐照片做成拼图游戏
Feb 15 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
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
PHP实现自动识别原编码并对字符串进行编码转换的方法
2016/07/13 PHP
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
2013/08/28 Javascript
jQuery通过扩展实现抖动效果的方法
2015/03/11 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
用window.onerror捕获并上报Js错误的方法
2016/01/27 Javascript
js仿手机页面文件下拉刷新效果
2016/10/14 Javascript
js 点击a标签 获取a的自定义属性方法
2016/11/21 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
Vue-Cli中自定义过滤器的实现代码
2017/08/12 Javascript
解决Vue不能检测数组或对象变动的问题
2018/02/24 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
基于vue和react的spa进行按需加载的实现方法
2018/09/29 Javascript
vue cli3.0 引入eslint 结合vscode使用
2019/05/27 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
python处理PHP数组文本文件实例
2014/09/18 Python
Django自定义manage命令实例代码
2018/02/11 Python
Python 统计字数的思路详解
2018/05/08 Python
Anaconda2 5.2.0安装使用图文教程
2018/09/19 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
《陶罐和铁罐》教学反思
2014/02/19 职场文书
中介业务员岗位职责
2014/04/09 职场文书
初中教师业务学习材料
2014/05/12 职场文书
庆六一宣传标语
2014/10/08 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书