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中字符串的格式化方法小结
May 03 Python
一张图带我们入门Python基础教程
Feb 05 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
实时获取Python的print输出流方法
Jan 07 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
python3.6生成器yield用法实例分析
Aug 23 Python
Flask之pipenv虚拟环境的实现
Nov 26 Python
python读取与处理netcdf数据方式
Feb 14 Python
Pycharm及python安装详细教程(图解)
Jul 31 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 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 小乘法表实现代码
2009/07/16 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
纯php生成随机密码
2015/10/30 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
javascript事件委托的用法及其好处简析
2016/04/04 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
Python 多线程抓取图片效率对比
2016/02/27 Python
python的mysqldb安装步骤详解
2017/08/14 Python
python中的变量如何开辟内存
2018/06/26 Python
python查看模块,对象的函数方法
2018/10/16 Python
python 处理string到hex脚本的方法
2018/10/26 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python字符串的拼接方法总结
2019/11/18 Python
Python:slice与indices的用法
2019/11/25 Python
Python虚拟环境venv用法详解
2020/05/25 Python
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
客户表扬信范文
2014/01/10 职场文书
商务助理求职信范文
2014/04/20 职场文书
党支部三会一课计划
2014/09/24 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
使用react+redux实现计数器功能及遇到问题
2021/06/02 Javascript
python计算列表元素与乘积详情
2022/08/05 Python