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. 关于Arduino项目的构建思想-转自openbook开源杂志

  2. SublimeText相关配置

    安转插件:案例格式化HTML代码,需要安装插件,具体安装步骤如下: 1.打开菜单->首选项->插件控制,输入 install package 2.等待程序进入插件管理功能,再输入插件名称: ...

  3. Mysql数据库操作语句总结(二)

    Mysql字符串字段判断是否包含字符串的3中方法 方法一: select * from user where email like "%b@email.com%";// 这个理解起 ...

  4. C#问题记录-CallbackOnCollectedDelegate

    做项目的时候遇到了这个问题: 检测到:CallbackOnCollectedDelegate 对“xx.HookProc::Invoke”类型的已垃圾回收委托进行了回调.这可能会导致应用程序崩溃.损坏 ...

  5. 实战:ADFS3.0单点登录系列-前置准备

    本文为本系列第二篇,主要分为两部分进行介绍, 一.网络拓扑 二.证书制作 还是将本系列目录贴出来,方便导航 实战:ADFS3.0单点登录系列-总览 实战:ADFS3.0单点登录系列-前置准备 实战:A ...

  6. cms-静态化组件

    1.要让我们的网站性能更好,那么有的东西是需要做静态化的.做静态化步骤: 1.1在web.xml中配置监听器 1.2.创建一个bean用来实现静态化 web.xml <?xml version= ...

  7. FTP添加虚拟目录(图)

    设置 访问效果 可以看到有这个文件:

  8. JPA将查询结果转换为DTO对象

    前言 JPA支持使用@Query自定义查询,查询的结果需要字节用DTO对象接收,如果使用HQL的查询语句,可以将直接将DTO对象的构造方法传入hql中,直接转为DTO对象:而如果使用native sq ...

  9. IOS plist的数据 存 取(沙河目录)

    应用沙盒目录的常见获取方式 沙盒根目录:NSString *home = NSHomeDirectory(); Documents:(2种方式) 1.利用沙盒根目录拼接”Documents”字符串 N ...

  10. IOS PickerView使用

    - (void)viewDidLoad { [super viewDidLoad]; // 1.创建pickerview // pickerview有默认的frame UIPickerView *pi ...