Python内置模块:random,os,sys,和加密模块hashlib
random
import random # 导入模块
随机数 import random # 内置的 print(random.random()) #0-1 之间随机小数(18位有效数字) print(random.randint(1,10)) #起始位置,终止位置 两头都包含 print(random.randrange(1,21,2)) #起始位置,终止位置(不包含),步长 print(random.choice(['alex','wusir','eva_j'])) #从有序数据结构中随机选择一个 print(random.choices(['wusir','tialaing','taihei','ritian'],k=2)) #随机选择两个,但是有重复 print(random.sample(['wusir','tialaing','taihei','ritian'],k=2)) #随机选择两个,没有重复 li = [1,2,3,4,6] random.shuffle(li) # 洗牌 打乱顺序 print(li) #随机数 验证码 微信红包 print(chr(65),chr(90),chr(97),chr(122)) U = chr(random.randrange(65,91)) L = chr(random.randrange(97,123)) n1 = random.randrange(0,10) n2 = random.randrange(0,10) print(U, L,n1,n2)
os
# 用于和电脑操作系统做交互
import os
os.makedirs('app/a/b/c') # 递归创建文件 *** os.removedirs('app/a/b/c') # 递归删除文件, 当这个要删除的目录有文件就停止删除 *** os.mkdir('app') # 创建单个目录 *** os.rmdir('app') # 删除单个目录,目录如果有东西就报错不进行删除 *** print(os.listdir('D:\PyCharmProject\s20\day14')) **** # 查看某个目录下的内容 # 文件: os.remove() #删除这个文件,删除了就不能恢复了 ***** os.rename() #修改文件的名字 ***** # 操作系统: print(repr(os.sep)) #\\ # C:\Users\lucky\Documents\Tencent Files\932023756\FileRecv # 路径符号 print(repr(os.linesep)) # 换行符 print(repr(os.pathsep)) # 环境变量的分割 print(repr(os.name)) print(os.system('dir')) # print(os.popen('dir').read()) *** # 在写程序的时候可以下发一些操作系统的指令 # 在linux系统上相当于发shell命令 # print(os.environ) 查看 高级 -- 环境变量 -- path * # 路径: print(os.path.abspath('b')) **** # 获取当前文件的绝对路径 print(os.path.split(r'D:\PyCharmProject\s20\day14\b')) # 将这个文件的绝对路径分成目录和文件 print(os.path.basename(r'D:\PyCharmProject\s20\day14\b')) ** # 获取的是这个文件的名字 print(os.path.dirname(r'D:\PyCharmProject\s20\day14\b')) *** # 获取的是这个文件的目录路径 print(os.path.exists(r'D:\PyCharmProject\s20\day10\07 今日总结.py')) ** # 判断这个文件是否存在 print(os.path.isabs(r'D:\PyCharmProject\s20\day14\b')) # 判断是否是绝对路径 print(os.path.join('C:\\','app','a','b')) ***** #路径拼接的 软件开发规范 框架 os.stat() print(os.stat('b').st_size) #获取文件大小 ,坑目录 *** print(os.getcwd()) # 获取工作路劲 *** os.chdir('D:\PyCharmProject\s20\day13') # 路劲切换 * print(os.getcwd())
sys
# 用户和解释器交互
import sys
print(sys.argv[-1]) *** # 接受cmd方式调用 后边的参数会传递进来 linux系统上 -- 后端开发 -- 数据库(文件) ip + 端口 print(sys.path) # 添加自定义模块路劲的 # ****** print(sys.version) # 版本 获取解释的版本号 sys.platform = 'win1988' print(sys.platform) #获取当前操作系统的平台位数 # 不是定死的 print(sys.exit(1))
hashlib
1.# 加密算法
作用: 当做密码
判断一致性
2.加密后不可逆 不能解 (一年前暴力破解 -- 撞库)
现在md5 反推,md5已经不安全了,所有有了sha
import hashlib md5 = hashlib.md5('盐'.encode('utf-8')) # 选择加密方式 加盐 md5.update('alex3714'.encode('utf-8')) # 将明文转成字节然后进行加密 print(md5.hexdigest()) # 生成密文 md5 = hashlib.md5() # 选择加密方式 加盐 md5.update('alex3714'.encode('utf-8')) # 将明文转成字节然后进行加密 print(md5.hexdigest()) # 生成密文 sha512 = hashlib.sha512() sha512.update('alex3714'.encode('utf-8')) print(sha512.hexdigest())
# # sha512
# 优点:
# 安全
# 缺点:
# 慢
#
# # md5
# 优点:
# 安全,快
# 缺点:
# 容易破解