1.監控日誌的指令碼:
如果同乙個ip位址60s之內訪問超過200次,那麼就把ip加入黑名單裡
需求分析:
(1).60秒讀一次檔案
(2).分割,取到第乙個元素,ip位址
(3).把所有的ip加入到list裡,如果ip次數超過200次,加入黑名單
1 import time
2 point=0#檔案指標
3 while true:
4 ips=#存放所有的ip位址
5 blk_set = set()#存放需要加入黑名單ip
6 with open('access.log',encoding='utf-8')as f:
7 f.seek(point)
8 for line in f:
9 ip=line.split()[0]
11 if ips.count(ip)>10:
12 blk_set.add(ip)
13 for ip in blk_set:#這裡是因為防止ip重複加入黑名單,因為集合是去重的,所以裡面沒有重複的ip
14 print('已經把%s加入黑名單'%ip)
15 point=f.tell()
16 time.sleep(60)
2.對比請求報文:對比倆字典裡面不一樣的值
需求分析:
1.迴圈第乙個字典,取到k。然後從第二個字典裡面取值,然後判斷兩個值是否一樣
1 d1=
2 d2=
3 def compare(d1,d2):
4 for k in d1:
5 v1=d1.get(k)
6 v2=d2.get(k)
7 if v2:
8 if v1!=v2:
9 print('value不一樣的k是%s,v1是%s,v2是%s'%(k,v1,v2))
10 else:
11 print('key不一樣是%s'%k)
12 compare(d1,d2)
3.型別判斷:
1 if type(d1)==dict:
2 print('字典')
3 4 def print_var_type(var):
5 if type(var)==str:
6 print('字串')
7 elif type(var)==dict:
8 print('字典')
9 elif type(var)==int:
10 print('整數')
11 elif type(var)==list:
12 print('列表')
13 elif type(var) ==tuple:
14 print('元組')
15 elif type(var) ==float:
16 print('小數型別')
17 elif type(var) ==set:
18 print('集合')
#1.寫乙個校驗字串是否為合法的小數
#0.88
#-0.99
#1.小數點的個數,小數點的個數1
#2.按照小數點分割
1 def check_float(s):
2 s=str(s)
3 if s.count('.')==1:
4 s_list=s.split('.')
5 left=s_list[0]
6 right=s_list[1]
7 if left.isdigit()and right.isdigit():#正小數
8 return true
9 elif left.startswith('-')and left.count('-')==1:
10 if left.split('-')[-1].isdigit()and right.isdigit():
11 return true
12 return false
13 print(check_float(1.5))
14 print(check_float(-1.5))
15 print(check_float(2))
16 print(check_float('s.8'))
17 print(check_float('.8'))
18 print(check_float(.8))
19 print(check_float('.'))
20 print(check_float('-.5'))
21 print(check_float('-5.-5'))
Python學習筆記(六)
函式 呼叫python內建的函式,可以通過 help fun 進行查詢。舉例 abs x 求x絕對值 cmp x,y 比較兩個數大小,如果 xy,返回 1。int x 把其他資料型別轉換為整數,包括字串型別。str 把其他型別轉換成 str。編寫函式 def my abs x if x 0 retu...
Python學習筆記(六)
函式練習題 1 寫函式,檢查傳入字典的每乙個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。dic def dict func dic for key,value in dic.items if len value 2 value value 0 2 dic key...
Python學習筆記六
python課堂筆記六 常用模組已經可以在單位實際專案中使用,可以實現運維自動化。無需手工備份檔案,資料庫,拷貝,壓縮。常用模組 time模組 time.time time.localtime time.strftime os模組 主要針對作業系統的一些方法,如 切換目錄 sys模組 跟python...