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中的list列表及其切片和迭代操作
Mar 13 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
python机器学习案例教程——K最近邻算法的实现
Dec 28 Python
django静态文件加载的方法
May 20 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
python mock测试的示例
Oct 19 Python
用Python远程登陆服务器的步骤
Apr 16 Python
python调试工具Birdseye的使用教程
May 25 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
php4的彩蛋
2006/10/09 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
PHP大文件分片上传的实现方法
2018/10/28 PHP
java解析json方法总结
2019/05/16 PHP
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
AngularJS select设置默认值的实现方法
2017/08/25 Javascript
js 开发之autocomplete="off"在chrom中失效的解决办法
2017/09/28 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
Python入门篇之字典
2014/10/17 Python
浅析python的Lambda表达式
2019/02/27 Python
PyQt5笔记之弹出窗口大全
2019/06/20 Python
python3 下载网络图片代码实例
2019/08/27 Python
Python函数参数分类原理详解
2020/05/28 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
Peter Millar官网:美国高档生活服饰品牌
2018/07/02 全球购物
2014新年寄语
2014/01/20 职场文书
教师个人读书活动总结
2014/07/08 职场文书
财务管理专业自荐书
2014/09/02 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
招商引资工作汇报
2014/10/28 职场文书
整改落实自查报告
2014/11/05 职场文书
化工生产实习心得体会
2016/01/22 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
Python音乐爬虫完美绕过反爬
2021/08/30 Python
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫