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的Flask框架中实现单元测试的教程
Apr 20 Python
Python中矩阵库Numpy基本操作详解
Nov 21 Python
Python2.7下安装Scrapy框架步骤教程
Dec 22 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
浅谈Python里面小数点精度的控制
Jul 16 Python
tensorflow实现对张量数据的切片操作方式
Jan 19 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 Python
python本地文件服务器实例教程
May 02 Python
pytorch MSELoss计算平均的实现方法
May 12 Python
Python基础之数据类型知识汇总
May 18 Python
浅谈Python数学建模之固定费用问题
Jun 23 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 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
javaScript 判断字符串是否为数字的简单方法
2009/07/25 Javascript
javascript offsetX与layerX区别
2010/03/12 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
JavaScript头像上传插件源码分享
2016/03/29 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
ES6之模版字符串的具体使用
2018/05/17 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
2019/03/26 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
js prototype和__proto__的关系是什么
2019/08/23 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
使用Python中PDB模块中的命令来调试Python代码的教程
2015/03/30 Python
python分析网页上所有超链接的方法
2015/05/08 Python
Python使用xlrd模块操作Excel数据导入的方法
2015/05/26 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
python递归实现快速排序
2018/08/18 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
python实现简单学生信息管理系统
2020/04/09 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
日本小田急百货官网:Odakyu
2018/07/19 全球购物
教师现实表现材料
2014/02/14 职场文书
大学生励志演讲稿
2014/04/25 职场文书
一体化教学实施方案
2014/05/10 职场文书
出生证明范本
2015/06/15 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server