Python基于gevent实现文件字符串查找器

Nimat ·
更新时间:2024-09-21
· 861 次阅读

1、递归遍历目录下所有文件并通过finder函数定位指定格式字符串

2、用来查找字符串的finder函数是自己定义的,这里定义了一个ip_port_finder通过正则表达式查找ip:port格式(粗匹配:数字.数字.数字.数字:数字)的字符串

3、用gevent来实现协程并发完成耗时任务

代码如下:

# -*- coding: utf-8 -*- import re from os.path import join from os import walk from gevent import monkey import gevent monkey.patch_all() def ip_port_finder(str: str) -> bool: pattern = re.compile(r".+\d+\.\d+\.\d+\.\d+:\d+") matchObj = pattern.match(str) if matchObj: print("------") print(f"发现目标:{matchObj.group(0)}") return True else: return False def find_in_file(file_path, finder): with open(file_path, "r", encoding="utf-8", errors='ignore') as f: for (num, value) in enumerate(f): if finder(value): print(f"文件路径:{file_path}") print(f"所在行数:{num}") find_in_path_recursively = lambda path, finder: gevent.joinall( [gevent.spawn(find_in_file, join(root, file_name), finder) for root, directories, f_names in walk(path) for file_name in f_names]) if __name__ == '__main__': path = "E:\dev_codes\xxx" find_in_path_recursively(path, ip_port_finder) 您可能感兴趣的文章:Python基于gevent实现高并发代码实例python 协程 gevent原理与用法分析Python使用grequests(gevent+requests)并发发送请求过程解析简单了解python gevent 协程使用及作用详解python之协程gevent模块Python并发编程协程(Coroutine)之Gevent详解Python的网络编程库Gevent的安装及使用技巧Python的gevent框架的入门教程在Python的gevent框架下执行异步的Solr查询的教程



字符串查找 字符串 gevent Python 字符

需要 登录 后方可回复, 如果你还没有账号请 注册新账号