Python3用gevent寫個檔案字串查詢器

2021-09-25 21:31:38 字數 1403 閱讀 3112

[本文出自天外歸雲的]

1、遞迴遍歷目錄下所有檔案並通過finder函式定位指定格式字串

2、用來查詢字串的finder函式是自己定義的,這裡定義了乙個ip_port_finder通過正規表示式查詢ip:port格式(粗匹配:數字.數字.數字.數字:數字)的字串

3、用gevent來實現協程併發完成耗時任務

**如下:

#

-*- coding: utf-8 -*-

import

refrom 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)

ifmatchobj:

print("

------")

print(f"

發現目標:")

return

true

else

:

return

false

deffind_in_file(file_path, finder):

with open(file_path, "r

", encoding="

utf-8

", errors='

ignore

') as f:

for (num, value) in

enumerate(f):

iffinder(value):

print(f"

檔案路徑:")

print(f"

所在行數:")

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

inf_names])

if__name__ == '

__main__':

path = "

e:\dev_codes\***

"find_in_path_recursively(path, ip_port_finder)

第一次用Python3寫程式

系統 deepin15.11 第一次用py3寫程式 我以前是學py2的 也是第一次寫部落格。我學哥給我說過py2和py3幾乎就是兩種語言。寫了一上午py3,發現py2我竟然不太會了!納尼?emmmm 真的很感謝我的同學也是我的朋友 時家輝?成為我的第乙個測試者,一直給我鼓勵。所以我直接乾脆把他寫進我...

PYTHON3的dnspython模組用法

因為平時在測試dns的時候有些操作手動完成不方便,所以需要用到指令碼,而在python裡dnspython這個用於dns操作的庫十分強大,但是無奈網上大部分資料只列舉了少部分的用法,所以記錄一下我平時使用到的功能,基本上已經能應付大部分的使用場景了。想具體了解dnspython可以登入官方 閱讀使用...

Python3 動手自己寫谷歌翻譯

本篇為實現谷歌翻譯的功能,在編寫的時候以為只是乙個介面的問題。沒想到的是每次翻譯都會觸發一次js的執行,在請求引數中生成乙個tk。文中tk的實現是復用的網上大神的 生成tk。好了,不說了直接看 吧!1 usr bin env python 2 coding utf 8 3 import urllib...