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的chardet库获得文件编码并修改编码
Jan 22 Python
Python实现的数据结构与算法之队列详解
Apr 22 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
python实现kMeans算法
Dec 21 Python
Python将多个excel表格合并为一个表格
Feb 22 Python
python操作excel文件并输出txt文件的实例
Jul 10 Python
用xpath获取指定标签下的所有text的实例
Jan 02 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
Aug 09 Python
tensorflow实现打印ckpt模型保存下的变量名称及变量值
Jan 04 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
Python描述数据结构学习之哈夫曼树篇
Sep 07 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
Mar 02 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调用Oracle存储过程的方法
2008/09/12 PHP
PHP 多维数组排序实现代码
2009/08/05 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
PHP简单实现DES加密解密的方法
2016/07/12 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
jquery封装的对话框简单实现
2013/07/21 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
2017/10/19 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
Three Graces London官网:英国奢侈品牌
2021/03/18 全球购物
应届生人事助理求职信
2013/11/09 职场文书
和平主题的演讲稿
2014/01/12 职场文书
模范家庭事迹材料
2014/02/10 职场文书
党性观念心得体会
2014/09/03 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
2014年团支书工作总结
2014/11/14 职场文书
图书馆义工感想
2015/08/07 职场文书
python实现三次密码验证的示例
2021/04/29 Python