• 一些常用的模块


    一 time与datetime模块

      1.1 time模块

    import time

        优先掌握

    #时间戳timestamp:从1970年到现在经过的秒数.作用:用于时间间隔的计算
    print(time.time())
    
    #按照某种格式显示的时间Format String:2020-03-30 11:11:11 AM.作用:用于展示时间
    print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
    
    #结构化的时间,作用:用于单独获取时间的某一部分。结构化的时间(struct_time)元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
    res = print(time.localtime())
    print(res)
    print(res.tm_year)
    
    #睡眠(暂停)
    print(time.sleep(3))

        需要掌握

    #时间格式的转换
    
    # struct_time->时间戳
    s_time = time.localtime()
    print(time.mktime(s_time))# mktime(t) : 将一个struct_time转化为时间戳。
    
    # 时间戳->struct_time
    tp_time=time.time()
    print(time.localtime(tp_time))

        部分掌握

    #strftime转化为格式化的时间字符串
    s_time=time.localtime()
    print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))
    
    #把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
    print(time.strptime('2020-03-30 16:16:38','%Y-%m-%d %H:%M:%S'))
    
    # !!!真正需要掌握的只有一条:format string<------>timestamp
    # format string--->struct_time--->timestamp
    struct_time=time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S')
    timestamp=time.mktime(struct_time)
    print(timestamp)
    
    # format string<---struct_time<---timestamp
    res=time.strftime('%Y-%m-%d %X',time.localtime())
    print(res)

        补充:世界标准时间和本地时间

    print(time.localtime())
    print(time.gmtime()) # 世界标准时间,了解

        了解

    print(time.asctime())
    #把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
    #None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。

      1.2 datetime

    import datetime
    print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式
    print(datetime.datetime.now()) # 当前时间
    print(datetime.datetime.now() + datetime.timedelta(days=3)) #当前时间加3天
    print(datetime.datetime.now() + datetime.timedelta(weeks=1))#当前时间加1星期
    print(datetime.datetime.utcnow()) #时间标准时间
    
    c_time  = datetime.datetime.now()
    print(c_time.replace(minute=3,hour=2)) #时间替换
    datetime

     

    二 random模块

    import random
    
    print(random.random())#(0,1)----float    大于0且小于1之间的小数
    print(random.randint(1,3))# [1,3]    大于等于1且小于等于3之间的整数
    print(random.randrange(1,3))# [1,3)    大于等于1且小于3之间的整数
    print(random.choice([111,'aaa',[1,2]])) #在元素内随机选择一个
    print(random.sample([111,'zz',[1,2]]),2) # 列表元素任意2个组合
    print(random.uniform(1,3)) # 大于1小于3的小数,如1.927109612082716
    
    item = [1, 3, 5, 7, 9]
    random.shuffle(item)  # 打乱item的顺序,相当于"洗牌"
    print(item)

      验证码的案例

    import random
    def make_code(size=4):
        res = ''
        for i in range(size):
            s1 = chr(random.randint(65,90))
            s2 = str(random.randint(0,9))
            res+=random.choice([s1,s2])
        return res
    print(make_code(6))

    三 os模块

    print(os.listdir('.')# 获取某一个文件夹下所有的子文件以及子文件夹的名字
    print(os.path.getsize('.'))#返回path的大小
    os.remove()  #删除一个文件
    os.rename("oldname","newname")  #重命名文件/目录
    os.system(command)  #将字符串转换成命令在终端运行
    
    print(os.environ)  #获取系统环境变量
    os.environ['aaaaaaaaaa']='111'# 规定:key与value必须都为字符串
    print(os.environ)
    
    print(os.path.dirname(r'/a/b/c/d.txt'))#返回path的目录
    print(os.path.basename(r'/a/b/c/d.txt'))#返回path最后的文件名
    print(os.path.isfile(path))#如果path是一个存在的文件,返回True。否则返回False 可以用来判断是否为文件
    print(os.path.isdir(path))#如果path是一个存在的目录,则返回True。否则返回False
    print(os.path.join('a','/','b','c','d'))#将多个路径组合后返回,第一个绝对路径(/)之前的参数将被忽略
    掌握
    print(os.getcwd())#获取当前工作目录,即当前python脚本工作的目录路径
    print(os.chdir("dirname")) #改变当前脚本工作目录;相当于shell下cd
    os.makedirs('dirname1/dirname2')#可生成多层递归目录
    os.removedirs('dirname1')#若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('dirname')    #生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname')    #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.stat('path/filename')  #获取文件/目录信息
    os.sep    #输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    os.linesep    #输出当前平台使用的行终止符,win下为"	
    ",Linux下为"
    "
    os.pathsep    #输出用于分割文件路径的字符串 win下为;,Linux下为:
    os.name    #输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
    os.path.abspath(path)  #返回path规范化的绝对路径
    os.path.split(path)  #将path分割成目录和文件名二元组返回
    os.path.split(path)#的第二个元素
    os.path.exists(path)  #如果path存在,返回True;如果path不存在,返回False
    os.path.isabs(path)  #如果path是绝对路径,返回True
    os.path.getatime(path)  #返回path所指向的文件或者目录的最后存取时间
    os.path.getmtime(path)  #返回path所指向的文件或者目录的最后修改时间
    了解

       os处理路径的几种方式

    # 方式一:推荐用这种
    BASE_DIR=os.path.dirname(os.path.dirname(__file__))
    print(BASE_DIR)
    
    #方式二
    BASE_DIR=os.path.normpath(os.path.join(
        __file__,
        '..',
        '..'
    ))
    print(BASE_DIR)
    
    #方式三# 在python3.5之后,推出了一个新的模块pathlib
    from pathlib import Path
    res = Path(__file__).parent.parent
    print(res)
    #路径的拼接
    res=Path('/a/b/c') / 'd/e.txt'
    print(res)
    print(res.resolve())

    四 sys模块

    sys.argv           #命令行参数List,第一个元素是程序本身路径
    sys.exit(n)        #退出程序,正常退出时exit(0)
    sys.version        #获取Python解释程序的版本信息
    sys.maxint         #最大的Int值
    sys.path           #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
    sys.platform       #返回操作系统平台名称

      打印进度条案例

    import sys
    import time
    def progress(percent,width=50):
        if percent>1:
            percent=1
        show_str = ('[%%-%ds]'%width)%(int(percent*width)*'*')
        print('
    %s %s%%'%(show_str,int(percent*100)),end='')
    
    data_size=10250
    recv_size=0
    while recv_size < data_size:
        time.sleep(0.1) #模拟数据的传输延迟
        recv_size+=1024 #每次收1024
    
        percent=recv_size/data_size #接收的比例
        progress(percent,width=70) #进度条的宽度70
  • 相关阅读:
    sql server 数据库创建链接服务器
    RabbitMQ消息队列(十四)-启用SSL安全通讯
    RabbitMQ消息队列(十三)-VirtualHost与权限管理
    RabbitMQ消息队列(十二)-性能测试
    RabbitMQ消息队列(十一)-如何实现高可用
    RabbitMQ消息队列(十)-高可用集群部署实战
    centos7 修改yum源为阿里源
    RabbitMQ消息队列(九)-通过Headers模式分发消息(.Net Core版)
    RabbitMQ消息队列(八)-通过Topic主题模式分发消息(.Net Core版)
    RabbitMQ消息队列(七)-通过fanout模式将消息推送到多个Queue中(.Net Core版)
  • 原文地址:https://www.cnblogs.com/bk134/p/12599438.html
Copyright © 2020-2023  润新知