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

  • 相关阅读:
    ADHOC Report 配置
    html tags
    Stingray验证机制
    常用jQuery知识
    Communication API
    stingray前端架构总体设计及运行过程
    REP report开发技巧
    WorkFlow业务介绍
    MySQL auto_increment初始值设置
    SQL Server中order by的使用,我们来填坑
  • 原文地址:https://www.cnblogs.com/yunyuan01/p/9201090.html
Copyright © 2011-2022 走看看