zoukankan      html  css  js  c++  java
  • 模块——常用模块

    time模块
    
    时间的格式:
    1)时间戳:从1970年到现在经历的秒数
    time.time()
    
    2)按格式:2020-3-30 11:11:00
    time.strftime('%Y-%m-%d %H:%M:%S %p')
    时分秒:也可以用%X
    
    3)结构化的时间:用于获取当前时间的某一个部分
    res = time.localtime()
    res.tm_year
    
    datetime模块
    
    datetime.datetime.now()
    格式化时间
    datetime.datetime.now() + datatime.timedelta(days = -3)
    计算三天前的时间,time模块这个就不方便了
    
    
    time.mktime(参数)  将结构化转为时间戳
    
    time.localtime(参数)  将时间戳转为结构化时间
    
    time.gmtime()  世界标准时间,结构化时间
    
    time.strftime('...',time.localtime(或者参数))  将结构化时间转为格式化时间
    
    time.strptime('2020-3-30','%Y-%m-%d')  将格式化时间字符串转为结构化时间
    
    格式相互转化以结构化时间为中间站
    
    time.asctime()  得到:Mon Mar 30 09:52:14 2020
    
    
    datetime.datetime.utcnow()
    datetime.datetime.fromtimestamp(时间戳)
    
    random模块
    
    random.random()  (0,1) >0 <1 float
    random.randint(1,3)  [1,3] >=1 <= 3 int
    random.randrange(1,3)  [1,3) >=1 < 3 int
    random.choice([...])  选出一个来
    random.sample([...],2)  随机取出两个
    random.uniform(1,3)  (1,3) float
    random.shuffle(item)  洗牌
    
    随机验证码
    
    chr将数字转为ASCII码的数字或字母
    
    
    os模块
    
    os.getcwd()  获取当前工作目录
    os.chdir(参数)  切换工作目录
    os.makedirs()  创建多层文件夹
    os.removedirs()  删除这个文件上面层级的空文件夹,此文件夹没有子文件夹
    os.mkdir()  生成单级目录
    os.rmdir()  删除单级空目录
    os.listdir()  查看文件夹下面的文件和文件夹
    os.listdir('.')  看当前文件夹
    os.path.getsize()  查看路径下文件的大小
    os.remove()  删除
    os.rename()  重命名
    os.system('系统命令')  执行系统命令
    os.environ  环境变量:key,value 必须为字符串,将路径变量添加到全局,用于软件的执行时,全部都用到
    sys.path  是导入模块的变量
    PATH  执行系统命令的变量
    os.path.abspath  返回绝对路径,路径分隔符为平台的默认
    __file__  /////////////
    os.path.split()  元组(文件夹,文件名)
    os.path.dirname()  获取上层文件夹路径
    os.path.basename()  获取当前文件
    os.path.isabs()  是否是绝对路径
    os.path.join()  连接路径,以根目录开始连接
    os.path.isfile()  判断是否是一个文件
    os.path.isdir()  判断是否是一个文件夹
    
    
    3.5 以后
    
    Path 模块:res = Path(__file__).parent.parent
    res = Path('...') / '...' 拼接路径,,,
    res.resolve()  把斜杠换成正规的平台默认的符号
    
    
    sys模块
    
    sys.path  模块查找路径
    sys.argv  接收程序外的输入
    python run.py 1 2 3
    argv 接收 1 2 3
    argv = [run文件路径,1,2,3]
    
    进度条:
    '[%-50s]'%'#'
    左对齐50位
    for
        print('
    [%-50s]'%'#',end = '')
    
    
    shutil模块
    
    对文件进行各种操作
    压缩
    
    序列化和反序列化
    json&pickle
    序列化是指把内存的数据类型转换为一个特定的格式内容
    
    内存中的数据 ——> 特定的格式(json或pickle) :序列化
    特定的格式(json或pickle)——> 内存中的数据  :反序列化
    
    序列化的内容:
    用于存储 = 》 用于存档
    传输给其它平台使用 = 》 跨平台数据交互
    
    专用于python:pickle :存档
    通用于所有语言:json 
    
    import json
    
    res = json.dumps(True)
    序列化,json格式
    res = json.loads(res)
    反序列化,Python可以识别的数据类型
    序列化结果,写入文件的简单方法:
    with ... as f:
        json.dump('...',f)
    with ... as f:
        l = json.load(f)
    
    json 格式兼容所有语言的数据类型,不能识别某一语言的特定类型
    
    loads:3.5 不能反序列化 bytes
    
    l = json.loads(b'[1, "aaa", true, false]')
    print(l, type(l))
    
    with open('json.txt',mode='rb') as f:
        l=json.load(f)
    
    # 了解
    # l = json.loads(b'[1, "aaa", true, false]')
    # print(l, type(l))
    # TypeError: the JSON object must be str, not 'bytes'
    
    # with open('json.txt',mode='rb') as f:
    #    l=json.load(f)
    # TypeError: the JSON object must be str, not 'bytes'
    
    # res=json.dumps({'name':'哈哈哈'})
    # print(res,type(res))
    
    # res=json.loads('{"name": "u54c8u54c8u54c8"}')
    # print(res,type(res))
    
    
    
    pickle.dumps loads dump load
    
    猴子补丁:
    
    所有后引用的同一个模块都指向第一次引用模块的地址,所以,改进模块,要在首次
    
    导入模块的位置修改,比如说start.py里改
    
    ujson 和 json 使用方式一样,但是速度更快
    
    json.dumps = ujson.dumps
    
    import ujson as json
    
    每个文件,都要改,只是起了个别名,在主文件名称空间里的,不影响json空间
    所以,不合适
    
    可以替换,,,
    
    pickle.dumps loads dump load
    
    import pickle
    
    res = pickle.dumps()
    bytes
    
    python2:
    pickle.dump('你',f,protocol = 2)
    
    xml 模块
    
    shelve 模块
    
    configparser 模块 as con
    ConfigParser :Python2
    
    配置文件:注释:# ;
    [section1]
    k1 = v1
    k1 : v1
    
    conf = con.ConfigParser()
    conf.read('...')
    获取配置文件
    conf.sections()  得到所有的section
    conf.options('section1')  获取下面的option,查看标题section1下所有key
    conf.items('section1')  获取配置元组,('k1','v1'),查看标题section1下所有items
    res = conf.get('section1','user')  获得user的值,str
    conf.getboolean('section1','is_admin')  直接获得bool值
    getfloat
    getint
    
    hashlib 模块
    
    哈希:算法,为该算法传入值,经过运算得到hash值,
    传入的值一样,得到的hash值必然一样,
    不能通过hash值反推出原来的值,
    得到的值长度是一定的
    
    加密
    撞库破解
    防止撞库:加盐
    提升撞库成本,
    
    m.update('天王'.encode('utf-8'))
    m.update('alex3714'.encode('utf-8'))
    m.update('盖地虎'.encode('utf-8'))
    加入一些无关紧要的东西,
    密文字典,如何截获密文
    验证完整性
    
    import hashlib
    
    m = hashlib.md5('wanglin'.encode('utf-8'))  得到密文的密码
    m.update('hello'.encode('utf-8'))
    m.updete('world'.encode('utf-8'))
    res = m.hexdigest()
    
    验证:取样验证
    
    
    subprocess 模块
    
    import subprocess
    
    obj = subprocess.Popen('系统命令',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIP)
    obj 对象
    obj.stdout.read()  正确的结果
    res = obj.stderr.read()  错误的结果
    res.decode('gbk')
    
    ; 分隔好几个命令,其中有运行正确的,也有错误的,可以分别输出
    
    
  • 相关阅读:
    Linux Commands
    sizeof操作符的使用详解
    在Vim中使用cscope
    MySQL学习笔记
    Online judge for leetcode
    使用Vim,让你工作效率更高
    Ext JS笔记
    安装J2EE开发环境
    这些都是什么啊
    QrCode二维码的实现原理
  • 原文地址:https://www.cnblogs.com/pythonwl/p/12599330.html
Copyright © 2011-2022 走看看