今天边肖给大家分享一个python文件搜索和内容匹配的方法,有很好的参考价值。希望对你有帮助。来和边肖一起看看吧。
需求:程序开发中有大量的接口,但实际使用中有一部分是没有用的。在开发的程序中匹配这些接口名称,并找出哪些接口从未使用过。保存这些未使用的接口名称。
代码结构:
结构解析:
1.find.py是一个文件搜索和匹配程序。
2.input_files.txt是要匹配的内容。
文件格式如下:
3.result.txt用于存储搜索结果。
格式同上。
4.用于测试的text.txt文档(可忽略)
实际代码:
find.py
#!/usr/bin/python
# -*-编码:UTF-8 -*-
导入操作系统、re、日期时间
类查找(对象):
def __init__(self,root,input_file):
'''
-初始化
'''
Self.root=root #文件树的根
Self.input_files=[] #要查询的字符串集合
Self.files=[] #要匹配的文件集合
Self.current=0 #匹配的文件集合的位置
f=文件(输入文件,' r ')
old_content=f.read()
f.close()
self . input _ files=old _ content . split(' \ n ')#在数组中保存要匹配的字符串
@静态方法
def find_file(自身):
'''
-查找文件,即遍历文件树,将找到的文件放入文件集合中。
:返回:
'''
# python中的walk方法可以找到给定路径下的所有文件和文件夹,这里只使用文件。
对于os.walk中的根、目录、文件(self.root,topdown=True):
对于文件中的名称:
self . files . append(OS . path . join(root,name))
# print(os.path.join(root,name))
#对于目录中的名称:
# print(os.path.join(root,name))
@静态方法
定义行走(自己):
'''
-逐个搜索它们,并将结果存储在result.txt文件中。
:参数自身:
:返回:
'''
对于self.files中的项目1:
Find.traverse_file(self,item1)
尝试:
结果=' '
对于self.input_files中的第3项:
结果=项目3 '\n '
f=文件('。/result_files.txt ',' w ')
f.write(结果)
f.close()
IOError除外,消息:
打印'错误:',消息
否则:
打印“确定”
@静态方法
def traverse_file(自身,文件路径):
'''
-遍历文件并匹配字符串。
:返回:
'''
f=文件(文件路径,' r ')
file_content=f.read()
f.close()
输入文件=[]
对于self.input_files中的项目2:
如果项目2:
#常规匹配,不区分大小写
searchObj=re.search(r '(。*)“项目2”。*,文件内容,re。M | re。我)
if searchObj:
继续
否则:
输入文件.追加(项目2)
self.input_files=输入文件
if __name__=='__main__ ':
打印datetime.datetime.now()
findObj=Find('F:\\projects ','。/input _ files . txt’)
findObj.find_file
findObj.walk(findObj)
打印datetime.datetime.now()
以上python文件搜索和内容匹配方法是边肖分享的全部内容。希望给大家一个参考,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。