zoukankan      html  css  js  c++  java
  • day4-Python学习笔记(六)监控日志,集合数据类型

    监控日志,【集合】数据类型,对集合进行操作

    监控日志脚本

    #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:UsersAdministratorDesktopaccess.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不存在的
     
  • 相关阅读:
    Linux排序命令sort笔记
    Linux排序命令sort笔记
    Linux文本截取命令cut​笔记
    排序和搜索
    栈和队列
    链表
    顺序表
    Linux编辑器|gedit|vi|vim编辑器
    Linux简介
    简单学习Git
  • 原文地址:https://www.cnblogs.com/flynn0825/p/8270868.html
Copyright © 2011-2022 走看看