一周目,十日学习

os文件操作模块

删除与创造

方法  mkdir      创建单级文件夹目录  

方法  mkdirs    创造多级文件夹目录  

方法  redir       删除单级文件夹空目录  

方法  removedirs  可以删除多级空目录  

查看

方法  listdir      查看指定路径下所有的文件夹及文件

方法  getcwd     查看当前所在的路径  

方法  chdir      切换当前操作的路径

判断

方法  path,isdir  判断是否是文件夹

方法  path.isfile  判断是否是文件

方法  path.exists   判断当前路径是否存在

路径拼接

方法  join      路径拼接在不同的操作系统中的符号各不相同,windows为 \ mac为 / ,对此可以用join来进行路径拼接,针对不同的操作系统切换分隔符

文件大小

方法  getsize    显示字节数

 

hashlib加密模块

加密模块:

将明文数据按照一定的逻辑变成密文数据,一般情况下密文都是由数字字母随机组合而成

加密算法:

将明文数据按照一定的逻辑,不同算法的逻辑各不相同

加密分三步走,分别是选择加密算法、输入加密数据以及获取加密后密文

选择加密算法:  加密算法=hashlib.加密算法()  如:md5=hashlib.md5()

输入加密数据:  加密算法.update(b'加密数据')数据必须是二进制类型  如:  md5.update(b'helllo')

获取加密后秘文: 变量名=加密算法.hexdigest()  如  res=md5.hexdigest()

加密进阶

加盐处理以及动态加盐  md5.update('自己定制的盐'.encode('utf8'))或md5.update('不固定 随机改变'.encode('utf8'))  此处以md5加密为列

 

random随机数模块

方法  random.random()  随机返回0到1之间的小数

方法  random.randint()  返回指定区间内的整数,包含首尾

方法  random.choices()  随机抽取一个,返回的是一个列表

方法  random.choice()  随机抽取一个数,返回的是一个元素

方法  random.sample()  随机抽样  如print(random.sample([111, 222, 333, 444, 555, 666, 777], 2))前者是待抽的样品,抽样的个数

方法  random.shuffle()  随机打乱元素,括号内为需要发乱的元素列表

random运用:随机验证码

一周目,十日学习 

 

logging日记模块

方法  debug  调试信息

方法  info    正常信息

方法  warning  警告

方法  error       出错

方法  critical   警报

日记文件案列

一周目,十日学习
 import logging

 file_handler = logging.FileHandler(filename='x1.log', mode='a', encoding='utf-8',)
 logging.basicConfig(
     format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
     datefmt='%Y-%m-%d %H:%M:%S %p',
     handlers=[file_handler,],
     level=logging.ERROR
 )

 logging.error('你好')
View Code

日记切割

一周目,十日学习
 import time
 import logging
 from logging import handlers

 sh = logging.StreamHandler()
 rh = handlers.RotatingFileHandler('myapp.log', maxBytes=1024,backupCount=5)
 fh = handlers.TimedRotatingFileHandler(filename='x2.log', when='s', interval=5, encoding='utf-8')
 logging.basicConfig(
     format='%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s',
     datefmt='%Y-%m-%d %H:%M:%S %p',
     handlers=[fh,sh,rh],
     level=logging.ERROR
 )

 for i in range(1,100000):
     time.sleep(1)
     logging.error('KeyboardInterrupt error %s'%str(i))
View Code

 

json数据格式转换传输模块

数据格式转换:可以将其他数据类型转换为字符串,也可以将字符串转化为其他类型,即序列化与反序列化

序列化操作:将其他数据类型转换为字符串

方法  dumps  数据序列化操作  数据格式的结果为字符串形式,双引号为json格式标志  如  变量名=json.dumps(待序列化数据)  res = json.dumps(d)

方法  dump  文件序列化  如读取文件为f:with open(r'a.txt','w',encoding='utf8') as f:  将文件转换为json格式:json.dump(d,f)

反序列化:将数据类型转换为对应的数据类型

方法  loads  数据反序列化操作   如:  变量名=json.loads(反序列化数据)    res1 = json.loads(res)

方法  load  文件反序列化操作  读取文件为f: with open(r'a.txt','r',encoding='utf8') as f:  将文件反序列化:res = json.load(f)

 

上一篇:Python-logging模块实现同时向控制台和文件打印日志


下一篇:socket 客户端和服务端