1. 程式人生 > >day4-Python學習筆記(六)

day4-Python學習筆記(六)

lin pre 學習 set spa lee 分割 日誌腳本 差集

監控日誌,集合操作

監控日誌腳本

#1.如果同一個ip地址在60秒內訪問超過200次,那麽就把ip加入黑名單
#需求分析:
#1. 60s 讀一次文件
#2. 分割,取到第一個元素,ip地址
#3. 把所有的ip 加入到list裏,如果ip次數超過200次,加入黑名單

import time
point = 0 #文件指針
while True:
ips = [] #存放所有ip地址
blk_set = set()#存放需要加入黑名單的ip
with open(r‘C:\Users\Administrator\Desktop\access.log‘,encoding=‘utf-8‘) as f:

f.seek(point)
for line in f:
ip = line.split()[0]
ips.append(ip)
if ips.count(ip)>30:
blk_set.add(ip)
for ip in blk_set:#這裏防止IP重復加入黑名單
print(‘已經把%s加入黑名單‘ % ip)
point = f.tell()
time.sleep(30)

集合操作
#int string list tuple dict float bool set

#集合,天生去重
s = set()#空的集合
s2 = {‘1‘,‘2‘,‘3‘,‘3‘,‘4‘}
s3 = {‘1‘,‘2‘,‘5‘}
# s5 = [1,2,3,5,5,5,5]
# print(set(s5))
#集合是無序的,所有沒有辦法通過下標取值
# s2.add(‘5‘)#添加值
s2.remove(‘1‘)#刪除值
s2.pop()#隨機刪一個值
# print(s2)
print(s2.intersection(s3)) #取交集
print(s3 & s2)#取交集
print(s3.union(s2))#取並集
print(s3|s2)#取並集
print(s2.difference(s3)) #取差集 s2存在,s3不存在的
 

day4-Python學習筆記(六)