python 文件查找及内容匹配方法

 更新时间:2018年10月25日 11:24:33   作者:琥珀光洁-衍钧  
今天小编就为大家分享一篇python 文件查找及内容匹配方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

需求:程序开发中有大量的接口,但在实际的使用中有一部分是没有使用的,在开发的程序中匹配这些接口名,找到哪些接口从没有使用过。将这些没有使用过的接口名保存下来。

代码结构:

结构解析:

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常用字符串替换函数strip、replace及sub用法示例

    Python常用字符串替换函数strip、replace及sub用法示例

    这篇文章主要介绍了Python常用字符串替换函数strip、replace及sub用法,结合实例形式分析了Python针对字符串替换的常用函数strip、replace及sub功能及简单使用技巧,需要的朋友可以参考下
    2018-05-05
  • Pytorch中.detach()与.data的用法小结

    Pytorch中.detach()与.data的用法小结

    这篇文章主要介绍了Pytorch中.detach()与.data的用法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 注意import和from import 的区别及说明

    注意import和from import 的区别及说明

    这篇文章主要介绍了注意import和from import 的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Python 常用的print输出函数和input输入函数

    Python 常用的print输出函数和input输入函数

    这篇文章主要介绍了Python 常用的print输出函数和input输入函数,今天主要学习一下Python中的输入输出流,会对标准输入输出流、文件输入输出流展开介绍,需要的朋友可以参考一下
    2022-02-02
  • python实现批量解析邮件并下载附件

    python实现批量解析邮件并下载附件

    这篇文章主要为大家详细介绍了python实现批量解析邮件并下载附件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 浅析Python中signal包的使用

    浅析Python中signal包的使用

    这篇文章主要介绍了Python中signal包的使用,主要在Linux系统下对进程信号进行相关操作,需要的朋友可以参考下
    2015-11-11
  • 解决python3.6用cx_Oracle库连接Oracle的问题

    解决python3.6用cx_Oracle库连接Oracle的问题

    这篇文章主要介绍了解决python3.6用cx_Oracle库连接Oracle的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)

    详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)

    这篇文章主要介绍了详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python实现目录自动清洗

    Python实现目录自动清洗

    这篇文章主要为大家详细介绍了Python实现目录自动清洗的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • python 数据加密代码

    python 数据加密代码

    使用Python来做数据加密同样简单,可以使用hashlib或者hmac模块来做数据加密
    2008-12-12

最新评论