zoukankan      html  css  js  c++  java
  • Python--常用模块部分

    模块

    pip install #模块名称
    #安装模块
    #导入模块 
    
    from collections import namedtuple

    collections模块

    提供了几个额外的数据类型:
     Counter、deque、defaultdict、namedtupleOrderedDict
    1.namedtuple:生成可以使用名字来访问元素内容的tuple
    2.deque:双端队列,可以快速的从另外一侧追加和推出对象
    3.Counter:计数器
    4.OrderedDict字典有序化
    5,defaultdict字典解决方法

    namedtuple 可命名元祖:
    对于可命名元祖来说可以通过名字访问.

    namedtuple('Point',['x','y'])
    p=P(1,2)
    print(p.x)
    print(p.y)

    实用性:让别人看代码比较方便
    deque模块  双端队列:
    队列:先进先出
    两端值先拿出来,从两端放值拿值。有appendleft和popleft
    OrderedDict字典有序:
    from collections import OrderedDict
    直接强转字典时把dict换成OrdereDict
    defaultdict字典解决:

    from collections import defaultdict
    values=[11,22,33,44,55,66,77,88,99]
    my_dict=defaultdict(list)
    print(my_dict)
    print(my_dict.get('k'))
    my_dict['k'].append(1)
    print(my_dict)

    省下了一个创建键值的步骤
    Counter 计算每个字符字典中出现的次数:
    同上导入模块方法
    用字典方法将字符串字母出现次数来排序

    时间模块

    直接import time
    time.time()时间戳   
    表示时间三种方式:
    (1)时间戳,从1970年1月1日零点开始按秒计算的偏移量,float型。标识时间
    然后用这个时间计算时间
    (2)格式化的时间字符串(Format String):'1999-12-06'
    (3)元祖时间()


    time.strftime('')后面给一个格式化格式
    %Y是年%m是月%d是天,除了年是小写 %H:%M:%S  时分秒都大写
    大%I是12小时制的%p是上下午
    %a是简化星期名大写不简化
    %c本地相应标准时间
    %j年内的一天
    %x 日期
    %X时间
    time.localtime() 默认参数当前时间 也就是括号内time.time
    time.struct_time()做时间计算  结构化时间
    time.gmtime()是utc  伦敦的时间  后面可以加时间戳数字时间
    时间戳转结构化↑

    time.mktime()结构化转时间戳
    结构化时间转字符串时间:
    time.strftime()括号前要转换的,后面是格式
    字符串时间转化结构化时间
    time.strptime()前面写进去时间,括号后面是给的是什么格式

    结构化时间转%a%b%d%H:%M:%S %Y串
    time.asctime()里面可以是time.localtime()
    将结构化时间转换成固定格式
    串转成结构化时间
    time.ctime()给一个时间戳就可以
    时间元祖:
    做时间计算的

    random模块

    random.random()  #随机生成大于0小于1之间的小数
    random.uniform(1,3)  #随机生成大于1且小于3的小数
    random.randint(1,5)  #随机生成大于等于1且小于等于5之间的整数
    random.randrange(1,10,2)  #大于等于1且小于10之间的奇数
    
    random.choice([1,'23',[4,5]])  #列表里面随机返回一个,参数是一个可迭代对象
    random.sample([1,'23',[4,5]],2)  #任意两个组合

    打乱顺序:

    item=[1,2,3,4]
    random.shuffle(item)
    print(item)

    随机验证码:
    1.

    ret=random.sample(range(10),6)
    print(''.join((str(i)for i in ret)))

    2.

    num_lst=[]
    for i in range(6):
        num=random.randint(0,9)
     num_lst.append(str(num))
    print(''.join(num_lst)))

    英文

    def func(n):
        ret=''
        for i in range(n):
            num = random.randint(0,9)
            ALPHA = chr(random.randint(65,90))
            alpha=chr(random.randint(97,122))
            value=random.choice([str(num),ALPHA,alpha])
            ret +=value
        return ret
    print(func(6))

    sys模块

    与python解释器连接的:
    sys.argv文件的相对路径。可以用来写登录

    import sys
    if sys.argv[1] =='alex' and if sys.argv[2]=='123'
       print('登陆成功')
     else:
       print('登陆失败')

    sys.version #打印的是python的version可以用来判断是否支持版本
    用startswith来判断开头不支持的话  sys.exit()退出
    sys.path    从前往后看模块导入路径
    可以在sys.path后面.append将文件路径加进去
    sys.platform  返回操作系统平台 判断操作系统平台  来更换路径

    OS模块

    os模块是与操作系统交互的一个接口
    1.和目录相关的
    2.和路径相关的
    3.和文件相关的
    4.和操作系统相关的
    5.和执行系统命令相关的
    一层用mkdir
    多层用makedirs

    os.listdir(os.getcwd())
    #将内容变成列表拿出来
    os.stat('path/filename') #获取文件状态stat结构
    os.sep  #路径拼接
    os.linesep  #输出当前平台使用的行终止符
    os.pathsep  #输出用于分割文件路径的字符串
    os.name #看当前操作系统
    os.system('dir') #看当前目录下的所有文件  有些像exec 执行命令用这个
    os.popen #有点像eval  要取得信息的话就用这个
    os.path
    os.path.abspath(path)   #返回path规范化的绝对路径
    #其实就是os.path.split(path)的第一个元素
    os.path.dirname(path)   #返回path目录  basename返回最后一个文件目录
    os.path.join   #可以将路径拼接   会自己按照操作系统拼接

    序列化模块

    将原本的字典,列表等内容转换成一个字符串的过程就叫做序列化
    文件里只能存字符串
    将程序中的数据类型转换成str
    应用:
    1.存文件
    2.网络传输
    序列化的目的
    1.以某种存储形实使自定义对象持久化
    2.将对象从一个地方传递到另一个地方
    3.使程序更具维护性
    数据结构转str是序列化
    反着转是反序列化
    json模块
    dumps是序列化过程
    loads是反序列化的过程

    import json
    d={'k':'v','k2':[1,2,3,4]}
    sd=json.dumps(d)
    print(sd,type(sd))
    j=json.loads(sd)
    print(j,type(j))

    dump可以传进文件
    load可以从文件中拿出转换
    ensure_ascii=False  在往文件存的时候用
    两种方法:
    1.序列化  dump  dumps
    2.反序列化 load  loads
    json一般只用于处理字典列表元祖
    pickle模块当自己定义了一些数据类型时可以用

    pickle  可以序列化一些自定义的数据类型   游戏
    json  是所有编程语言通用的一种数据类型   网络编程更多

    shelve模块

    python提供的序列化工具

    import shelve
    f = shelve.open('shelve_file')
    f['key']={'int':10}   可以多个key
    f.close()
    
    import shelve
    f1 = shelve.open('shelve_file')
    existing=f1['key']
    f1.close()

    这个模块有限制,不支持多个应用同一时间往同一个DB进行写操作。
    设置writeback=True才能修改key  ,否则key存在无法修改

  • 相关阅读:
    《代码整洁之道》三
    《代码整洁之道》二
    第五周总结
    第四周总结
    第三周总结
    第二周总结
    第一周总结
    课程总结
    周总结16
    河北省科技信息通用调查系统综合查询功能开发——Day9
  • 原文地址:https://www.cnblogs.com/gaoshengyue/p/7511682.html
Copyright © 2011-2022 走看看