zoukankan      html  css  js  c++  java
  • Python学习笔记(三):文件和集合操作

    python stringlist互转

    因为pythonreadwrite方法的操作对象都是string。而操作二进制的时候会把string转换成list进行解析,解析后重新写入文件的时候,还得转换成string

    import string

    str = 'abcde'

     list = list(str)

    list

    ['a', 'b', 'c', 'd', 'e']

    str

    'abcde'

    str_convert = ''.join(list)

    str_convert

    'abcde'

    一、集合操作:交差并、对称差集;add,update,discard

     

    二、检测密码的复杂度:

    1. 集合的交集和不重复性
    2. String模块提供的字符
    3. 字符串通过下标取值
    4. 字符串/数组通过set()方法转化成集合

    #-*-coding:utf-8-*-
    #校验密码复杂度:密码必须由数字、大小写字母特殊字符组成,且不能是数字开头
    import  string
    all_num = set(string.digits)#0~9
    all_upper = set(string.ascii_uppercase)#所有的大写字母
    all_lower = set(string.ascii_lowercase)#所有的小写字母
    all_punctuation = set(string.punctuation)#所有的特殊字符

    pwd = input("pwd:")
    set_pwd = set(pwd)
    if set_pwd & all_num and set_pwd & all_upper and set_pwd & all_lower and set_pwd & all_punctuation :
        if not all_num & set(pwd[0]):
            print("校验密码复杂度合格")

    文件操作:文件编码、当前指针位置、清空文件

     

    三、监控日志:

    1. 使用with open()打开文件使用完后可以自动关闭不需要人为close()
    2. file.tell()#获取当前指针的位置
    3. for k in 字典名称直接遍历字典中的key;用for k,v in 字典名称直接遍历字典中的key,value;for k in user_info.items()获取字典中每一个key-vlaue('age', '23')对
    4. Time.sleep(60)间歇性循环执行程序

    #-*-coding:utf-8-*-
    #监控日志:监控一分钟内恶意攻击该服务器的ip
    # 1.统计一分钟内每个ip的个数
    #2.找到这些个ip个数>=100
    #3.输出警告这些ip存在恶意攻击的可能。
    import  time
    point = 0#设置文件指针初始位置
    while True:
        with open('access.log','r+') as fread:
            ip_info = {}#定义个字典ip_info={"10.4.25.122":34}
            fread.seek(point)
            for line in fread:
                ip = line.split(' - - ')[0]#根据日志文件形式拆分出ip
                if ip_info.get(ip) :
                    ip_info[ip]+=1
                else:
                    ip_info[ip]=1
            point = fread.tell()#获取当前指针的位置
            print('当前指针的位置:%s'%point)
        for k in ip_info:#直接遍历字典中的key
            if ip_info.get(k)>=100:
                print('IP在攻击你%s'%ip_info.get(k))
        time.sleep(60)#睡眠60

    ============================================================================================================

    自定义函数:

    https://www.jb51.net/article/83452.htm

    第四周作业:

    https://coding.net/u/yun_yuan/p/Python_BestTest/git/tree/master/day04/zuoye

  • 相关阅读:
    Hologres如何支持亿级用户UV计算
    飞猪基于 Serverless 的云+端实践与思考
    高德打车构建可观测性系统实践
    程序员写好技术文章的几点小技巧
    配置审计(Config)变配报警设置
    进入中国内地第31年的麦当劳 ,为什么还能不断吸引新消费人群?
    OceanBase再破纪录!核心成员陈萌萌:坚持HTAP就是坚持我们做数据库的初心
    找出有序数组中缺失的数字
    删除值重复的结点
    想交链表----若有缘 必相见
  • 原文地址:https://www.cnblogs.com/yunyuan01/p/9201090.html
Copyright © 2011-2022 走看看