Python基于gevent實(shí)現(xiàn)文件字符串查找器
1、遞歸遍歷目錄下所有文件并通過(guò)finder函數(shù)定位指定格式字符串
2、用來(lái)查找字符串的finder函數(shù)是自己定義的,這里定義了一個(gè)ip_port_finder通過(guò)正則表達(dá)式查找ip:port格式(粗匹配:數(shù)字.數(shù)字.數(shù)字.數(shù)字:數(shù)字)的字符串
3、用gevent來(lái)實(shí)現(xiàn)協(xié)程并發(fā)完成耗時(shí)任務(wù)
代碼如下:
# -*- 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"發(fā)現(xiàn)目標(biāo):{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"所在行數(shù):{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)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python之json文件轉(zhuǎn)xml文件案例講解
這篇文章主要介紹了python之json文件轉(zhuǎn)xml文件案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08
使用pytorch加載并讀取COCO數(shù)據(jù)集的詳細(xì)操作
這篇文章主要介紹了使用pytorch加載并讀取COCO數(shù)據(jù)集,基礎(chǔ)知識(shí)包括元祖、字典、數(shù)組,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
基于python分析你的上網(wǎng)行為 看看你平時(shí)上網(wǎng)都在干嘛
這篇文章主要介紹了基于python分析你的上網(wǎng)行為 看看你平時(shí)上網(wǎng)都在干嘛,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Tensorflow中tf.ConfigProto()的用法詳解
今天小編就為大家分享一篇Tensorflow中tf.ConfigProto()的用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
從入門(mén)到精通:玩轉(zhuǎn)Python?Fire庫(kù)
想快速打造屬于你的Python?GUI應(yīng)用嗎?拋開(kāi)復(fù)雜的代碼,用Python?Fire庫(kù)就能輕松實(shí)現(xiàn)!本指南將引領(lǐng)你從零起步,駕馭Python?Fire的強(qiáng)大功能,讓編程既簡(jiǎn)單又高效,準(zhǔn)備好了嗎?讓我們開(kāi)始玩轉(zhuǎn)Python?Fire,開(kāi)啟你的編程冒險(xiǎn)吧!
講解Python中for循環(huán)下的索引變量的作用域
這篇文章主要介紹了講解Python中for循環(huán)下的索引變量的作用域,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),本文給出了Python3的示例幫助讀者理解,需要的朋友可以參考下2015-04-04
Django框架的使用教程路由請(qǐng)求響應(yīng)的方法
這篇文章主要介紹了Django框架的使用教程路由請(qǐng)求響應(yīng)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
Python xlrd/xlwt 創(chuàng)建excel文件及常用操作
這篇文章主要介紹了Python xlrd/xlwt 創(chuàng)建excel文件及常用操作,幫助大家更好的理解和使用python辦公,感興趣的朋友可以了解下2020-09-09

