python⽂件查及内容匹配⽅法
需求:程序开发中有⼤量的接⼝,但在实际的使⽤中有⼀部分是没有使⽤的,在开发的程序中匹配这些接⼝名,到哪些接⼝从没有使⽤过。将这些没有使⽤过的接⼝名保存下来。
代码结构:
结构解析:
1、find.py 是⽂件查及匹配程序
2、是待匹配内容
⽂件格式如下:
inputtypefile样式3、 ⽤于存放查结果
格式同上
4、 ⽤于测试的⽂档(可忽略)
实际代码:
find.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os, re, datetime
class Find(object):
def __init__(self, root, input_file):
"""
--初始化
"""
< = 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., 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):
"""
-
-逐⼀查,并将结果存⼊⽂件中
:param self:
:return:
"""
for item1 in self.files:
try:
result = ''
for item3 in self.input_files:
result += item3 + '\n'
f = file("./", "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 w()
findObj = Find('F:\\projects', "./")
findObj.find_file(findObj)
findObj.walk(findObj)
print w()
以上这篇python ⽂件查及内容匹配⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。