random: 随机数
''' import random random.random(0,1) :这个一直有一个争论,包含0或者不包含0的争论 random.randint[1,10] random.uniform() random.choice(item) 单列集合随机选择1个 random.sample(item,n) 单列集合随机选择n个 random.shuffle(item) 随机打乱单列集合 '''
序列化与反序列化:json | pickle | shelve
''' json:json是一种有语法规范的字符串,用来存方数据的,完成各种语言之间的数据交互.使用josn序列化到文件,必须只有一个根,不然无法反 序列化,这个语言的数据类型相关 json数据支持的数据类型:dict(字典) list(列表) int(整型) 浮点(float) str(字符串) null(空,python中写None) json字符串就是{存放双列信息}和[存放单列信息]的组合,且{}的key必须是str(字符串),并且要用" "包裹 注:除以上的类型以外,其他类型都不能出现,出现就不满足json格式,就不能序列化.真是个傲娇的语言 pickle:可以存各种数据类型 shelve:流 dump():将对象直接序列化成字符串 dumps():将对象序列化成字符串存储到文件中 json模块的此方法要注意ensure_ascii loads() :将字符串转换为对象 默认跟当前文件被解释器执行的编码走 load():将文件中的字符串转换成对象 shelve对序列化文件操作dump与load进行封装 注:writeback允许序列化的可变类型(比如列表),可以直接修改值 一次文件流:open()和close(),在一次文件流里,他会存最后一个valuse的值 '''
加密:hashlib hmac
''' 不可逆加密:没有解密的加密的方式, 比如md5 解密方式:碰撞解密 加密的对象:用于传输的数据是字符串类型的数据 import hashlib 获取加密对象:lock = hashlib.md5() 添加加密数据: 加盐加密: 1.保证原数据过于简单,通过复杂的盐也可以提高解密难度 2.即使被碰撞解密成功,也不能直接识别盐与有效数据 import hashlib lock_obj = hashlib.md5() lock_obj.update(b'goodgoodstudy') lock_obj.update(b'123') lock_obj.update(b'daydayup') res = lock_obj.hexdigest() print(res) import hmac # hmac.new(arg) # 必须提供一个参数 cipher = hmac.new('加密的数据'.encode('utf-8')) print(cipher.hexdigest()) cipher = hmac.new('前盐'.encode('utf-8')) cipher.update('加密的数据'.encode('utf-8')) print(cipher.hexdigest()) cipher = hmac.new('加密的数据'.encode('utf-8')) cipher.update('后盐'.encode('utf-8')) print(cipher.hexdigest()) cipher = hmac.new('前盐'.encode('utf-8')) cipher.update('加密的数据'.encode('utf-8')) cipher.update('后盐'.encode('utf-8')) print(cipher.hexdigest()) '''
shutil
# 基于路径的文件复制: shutil.copyfile('source_file', 'target_file') # 基于流的文件复制: with open('source_file', 'rb') as r, open('target_file', 'wb') as w: shutil.copyfileobj(r, w) # 递归删除目标目录 shutil.rmtree('target_folder') # 文件移动 shutil.move('old_file', 'new_file') # 文件夹压缩 # file_name:被压缩后形成的文件名 format:压缩的格式 archive_path:要被压缩的文件夹路径 shutil.make_archive('file_name', 'format', 'archive_path') # 文件夹解压 # unpack_file:被解压文件 unpack_name:解压后的名字 format解压格式 shutil.unpack_archive('unpack_file', 'unpack_name', 'format')