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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
Python处理文本换行符实例代码
Feb 03 Python
JavaScript实现一维数组转化为二维数组
Apr 17 Python
解决python3 json数据包含中文的读写问题
May 10 Python
解决python3捕获cx_oracle抛出的异常错误问题
Oct 18 Python
用python爬取租房网站信息的代码
Dec 14 Python
python抓取需要扫微信登陆页面
Apr 29 Python
Python实现Linux监控的方法
May 16 Python
python3 mmh3安装及使用方法
Oct 09 Python
python 6行代码制作月历生成器
Sep 18 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
Nov 18 Python
Python如何把不同类型数据的json序列化
Apr 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
处理单名多值表单的详解
2013/06/08 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
基于Jquery的简单&简陋Tabs插件代码
2010/02/09 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
vue实现动态数据绑定
2017/04/28 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
Python使用minidom读写xml的方法
2015/06/03 Python
Python使用django搭建web开发环境
2017/06/09 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
Django给admin添加Action的步骤详解
2019/05/01 Python
css sprite简单实例
2016/05/23 HTML / CSS
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
美国领先的低折扣旅行网站:Hotwire
2019/01/19 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
上班看电影检讨书
2014/02/12 职场文书
募捐倡议书
2014/04/14 职场文书
法制教育演讲稿
2014/09/10 职场文书
创先争优个人总结
2015/03/04 职场文书
超市采购员岗位职责
2015/04/07 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript