小編給大家分享一下Python基于geven如何實(shí)現(xiàn)文件字符串查找器的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、施甸ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的施甸網(wǎng)站制作公司1、遞歸遍歷目錄下所有文件并通過finder函數(shù)定位指定格式字符串
2、用來查找字符串的finder函數(shù)是自己定義的,這里定義了一個(gè)ip_port_finder通過正則表達(dá)式查找ip:port格式(粗匹配:數(shù)字.數(shù)字.數(shù)字.數(shù)字:數(shù)字)的字符串
3、用gevent來實(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)
新聞標(biāo)題:Python基于geven如何實(shí)現(xiàn)文件字符串查找器的方法-創(chuàng)新互聯(lián)
鏈接地址:http://bm7419.com/article36/didpsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、Google、定制開發(fā)、建站公司、移動(dòng)網(wǎng)站建設(shè)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容