• day19


    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')
  • 相关阅读:
    Servlet三种实现方法(四)
    Tomcat 网站部署(三)
    MySQL表的增删改查和列的修改(二)
    Tomcat的目录结构(二)
    addEventListener,attachEvent
    DOM事件流
    函数内部的函数中的this都是指向window
    css3 translate属性
    parent,parents和closest
    each用法
  • 原文地址:https://www.cnblogs.com/zhuqihui/p/10834996.html
Copyright © 2020-2023  润新知