python string与list互转

因为python的read和write方法的操作对象都是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

Python学习笔记(三):文件和集合操作的更多相关文章

  1. python学习笔记(三):文件操作和集合

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  2. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  3. Liunx学习笔记(三) 文件权限

    一.文件权限 1.查看文件权限 (1)文件权限 在 Linux 中对于文件有四种访问权限,列举如下: 可读取:r,Readable 可写入:w,Writable 可执行:x,Execute 无权限:- ...

  4. [Python学习笔记]组织文件

    shutil 模块 shutil 模块可以让我们很方便的在Python程序中复制.移动.改名和删除文件. 复制文件和文件夹 使用shutil.copy()来复制文件,该函数含两个参数,均为字符串格式的 ...

  5. Python学习笔记之文件处理

    1.打开和关闭 要打开文件可以使用函数 open(),它位于自动导入模块 io 中.函数将文件名作为唯一不可缺少的函数,并返回一个文件对象.它还有一个名叫 mode 的参数,用于指定文件模式,其可取值 ...

  6. python学习笔记之文件操作(三)

    这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...

  7. Python学习笔记015——文件file的常规操作之一(文本文件)

    1 什么是文件 文件是用于数据存储的单位 文件通常用来长期保存数据 读写文件是最常见的I/O操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件的功能都是由操作系统提供的,一般而言,操 ...

  8. python学习笔记(六)---文件操作与异常处理机制

    文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...

  9. python学习笔记(11):文件的访问与函数式编程

    一.文本文件读写的三种方法 1.直接读入 file1 = open('E:/hello/hello.txt') file2 = open('output.txt','w') #w是可写的文件 whil ...

  10. python学习笔记(7)文件的访问与函数式编程

    一.文件读写的3中方法 1.直接读入 fiel1=open('test.txt') file2=open('output.txt') while True: line=file1.readLine() ...

随机推荐

  1. 如何让nginx支持ThinkPHP框架(重点参考)

    公司有一款即将上线的应用服务端是基于ThinkPHP写的,本地测试无异常,上传到外网服务器后无法连接.这可把我和我的小伙伴们吓死了,怎么回事儿,本地测试都是对的呀! 我和我的小伙伴们开始找原因,换了一 ...

  2. SpringBoot | 第二十六章:邮件发送

    前言 讲解了日志相关的知识点后.今天来点相对简单的,一般上,我们在开发一些注册功能.发送验证码或者订单服务时,都会通过短信或者邮件的方式通知消费者,注册或者订单的相关信息.而且基本上邮件的内容都是模版 ...

  3. Git 常用基本命令汇总

    安装git yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install -y gi ...

  4. Servlet高级部分Filter(过滤器)

    一:Filter称之为"过滤器",用在Servlet外,对request和response进行修改.它是AOP(面向切面编程思想的一种体现),Filter中有一个FilterCha ...

  5. JavaScript初识(三)

    十三丶JS中的面向对象 创建对象的几种常用方式: 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 下面我们详细看一下如何创建对象 1.使 ...

  6. SpringBoot集成mybatis和mybatis generator

    利用搭建的基本的spring boot框架,集成 mybatis + generator 1.设置 maven 的相关配置: File  - setting - maven 设置 Maven home ...

  7. [WPF][ListBox]鼠标拖拽多选,(Shift Key、Ctrl Key多选有效)(转)

    <ListBox Name="listBox" SelectionMode="Extended"> <ListBox.Resources> ...

  8. WCF的问题

    使用service调用WCF的时候,有时候会出现 其他信息: HTTP 无法注册 URL 进程不具有此命名空间的访问权限 这样的问题,这时候就需要进行如下尝试: 1,VS的管理权限使用管理员的权限. ...

  9. 【BZOJ4810】[YNOI2017] 由乃的玉米田(莫队+bitset)

    点此看题面 大致题意: 给你一段序列,每次询问一段区间内是否存在两个数的差或和或积为\(x\). 莫队算法 看到区间询问+可以离线,首先想到了莫队啊. 但是,在较短的时间内更新信息依然比较难以实现. ...

  10. 【51nod1443】路径和树(堆优化dijkstra乱搞)

    点此看题面 大致题意:给你一个无向联通图,要求你求出这张图中从u开始的权值和最小的最短路径树的权值之和. 什么是最短路径树? 从\(u\)开始到任意点的最短路径与在原图中相比不变. 题解 既然要求最短 ...