[本文出自天外歸雲的]
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...