Python学习笔记(三):文件和集合操作
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

二、检测密码的复杂度:
- 集合的交集和不重复性
- String模块提供的字符
- 字符串通过下标取值
- 字符串/数组通过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("校验密码复杂度合格")
文件操作:文件编码、当前指针位置、清空文件

三、监控日志:
- 使用with open()打开文件使用完后可以自动关闭不需要人为close()
- file.tell()#获取当前指针的位置
- 用for k in 字典名称直接遍历字典中的key;用for k,v in 字典名称直接遍历字典中的key,value;for k in user_info.items()获取字典中每一个key-vlaue('age', '23')对
- 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学习笔记(三):文件和集合操作的更多相关文章
- python学习笔记(三):文件操作和集合
对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...
- python学习笔记三 文件操作(基础篇)
文件操作 打开文件 open(name[,mode[,buffering]]) open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉] w ...
- Liunx学习笔记(三) 文件权限
一.文件权限 1.查看文件权限 (1)文件权限 在 Linux 中对于文件有四种访问权限,列举如下: 可读取:r,Readable 可写入:w,Writable 可执行:x,Execute 无权限:- ...
- [Python学习笔记]组织文件
shutil 模块 shutil 模块可以让我们很方便的在Python程序中复制.移动.改名和删除文件. 复制文件和文件夹 使用shutil.copy()来复制文件,该函数含两个参数,均为字符串格式的 ...
- Python学习笔记之文件处理
1.打开和关闭 要打开文件可以使用函数 open(),它位于自动导入模块 io 中.函数将文件名作为唯一不可缺少的函数,并返回一个文件对象.它还有一个名叫 mode 的参数,用于指定文件模式,其可取值 ...
- python学习笔记之文件操作(三)
这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...
- Python学习笔记015——文件file的常规操作之一(文本文件)
1 什么是文件 文件是用于数据存储的单位 文件通常用来长期保存数据 读写文件是最常见的I/O操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件的功能都是由操作系统提供的,一般而言,操 ...
- python学习笔记(六)---文件操作与异常处理机制
文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...
- python学习笔记(11):文件的访问与函数式编程
一.文本文件读写的三种方法 1.直接读入 file1 = open('E:/hello/hello.txt') file2 = open('output.txt','w') #w是可写的文件 whil ...
- python学习笔记(7)文件的访问与函数式编程
一.文件读写的3中方法 1.直接读入 fiel1=open('test.txt') file2=open('output.txt') while True: line=file1.readLine() ...
随机推荐
- Storm概念学习系列之storm的特性
不多说,直接上干货! storm的特性 Storm 是一个开源的分布式实时计算系统,可以简单.可靠地处理大量的数据流. Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快 ...
- (转)IE6 死后即将大快人心的10件事
(转)未来五年程序员应当具备的十项技能 W3C CSS 2.1 Specification(Quick Table of Contents) (转)IE6 死后即将大快人心的10件事 2009-04- ...
- Java语言程序设计(第三版)第二章课后习题答案(仅供参考)
2.1 注意不同类型转换 import java.util.Scanner; public class Ch02 { public static void main(String[] args) ...
- Mavlink 协议 理解
来源:blog.csdn.net/super_mice/article/details/44836585 之前看了mavlink协议,网上关于mavlink的资料不多.本文大概总结了下对mavlink ...
- 获取hudson持续构建编译结果的一种方法
作者:朱金灿 来源:http://blog.csdn.net/clever101 很多时候使用hudson结合VisualStudio进行持续构建后需要获取持续构建的编译结果,通过编译结果来知道哪些项 ...
- python基础-三元运算和bytes数据
三元运算 进制 二进制,01 八进制,01234567 十进制,0123456789 十六进制,0123456789ABCDEF bytes类型 http://www.cnblogs. ...
- 截取网卡IP地址
方法一: ifconfig eth1|awk 'NR==2 {print $2}' 方法二"" ifconfig eth1|grep -Po "(?<=inet ) ...
- python字符串及字符串操作
字符串介绍 1.字符串在内存中的存储: 2.字符串相加: 3.字符串的格式化: In [1]: a = 100 In [2]: a Out[2]: 100 #100<255,在堆内存下占用了一个 ...
- N 叉树的层序遍历
给定一个 N 叉树,返回其节点值的层序遍历. (即从左到右,逐层遍历). 例如,给定一个 3叉树 : 返回其层序遍历: [ [1], [3,2,4], [5,6] ] 说明: 树的深度不会超过 100 ...
- LeetCode Remove Duplicates from Sorted Array II 删除整型数组中的重复元素并返回剩下元素个数2
class Solution { public: int removeDuplicates(int A[], int n) { ],*e=&A[]; //s指向“连续数字”的第一个,e往后遍历 ...