zoukankan      html  css  js  c++  java
  • day22-常用模块一

    一、时间模块优先掌握的操作

    时间分为三种格式:
    1、时间戳:从1970年到现在经过的秒数
    作用:用于时间间隔的计算

    import time
    print(time.time())
    #1585574520.0712929

    2、按照某种格式显示的时间:2020-03-30 11:11:11
    作用:用于展示时间 

    import time
    print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
    print(time.strftime('%Y-%m-%d %X'))
    # 2020-03-30 21:23:02 PM
    # 2020-03-30 21:23:02

    3、结构化的时间
    作用:用于单独获取时间的某一部分

    import time
    
    res = time.localtime()
    print(res)
    print(res.tm_year)
    print(res.tm_yday)
    # time.struct_time(tm_year=2020, tm_mon=3, tm_mday=30, tm_hour=21, tm_min=23, tm_sec=43, tm_wday=0, tm_yday=90, tm_isdst=0)
    # 2020
    # 90

    datetime

    import datetime
    print(datetime.datetime.now())
    print(datetime.datetime.now() + datetime.timedelta(days=3))
    print(datetime.datetime.now() + datetime.timedelta(weeks=1))
    # 2020-03-30 21:24:34.855754
    # 2020-04-02 21:24:34.855754
    # 2020-04-06 21:24:34.855754

    时间模块需要掌握的操作
    1、时间格式的转换
    struct_time->时间戳

    # struct_time->时间戳
    import time
    s_time=time.localtime()
    print(time.mktime(s_time))
    
    # 时间戳->struct_time
    tp_time=time.time()
    print(time.localtime(tp_time))
    
    # 补充:世界标准时间与本地时间
    print(time.localtime())
    print(time.gmtime()) # 世界标准时间,了解
    print(time.localtime(333333333))
    print(time.gmtime(333333333))
    
    
    # struct_time->格式化的字符串形式的时间
    s_time=time.localtime()
    print(time.strftime('%Y-%m-%d %H:%M:%S',s_time))
    print(time.strptime('1988-03-03 11:11:11','%Y-%m-%d %H:%M:%S'))

    !!!真正需要掌握的只有一条:

    # format string<------>timestamp
    # '1988-03-03 11:11:11'+7
    import time
    # 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)+7*86400
    print(timestamp)
    
    # format string<---struct_time<---timestamp
    res=time.strftime('%Y-%m-%d %X',time.localtime(timestamp))
    print(res)
    # 573966671.0
    # 1988-03-10 11:11:11

    了解知识

    import time
    print(time.asctime()) #Mon Mar 30 21:28:14 2020
    
    
    import datetime
    print(datetime.datetime.now())#2020-03-30 21:28:14.924281
    print(datetime.datetime.utcnow())#2020-03-30 13:28:14.924281
    
    print(datetime.datetime.fromtimestamp(333333)) #1970-01-05 04:35:33

    
    
    二、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', [4, 5]]))  # 1或者23或者[4,5]
    
    print(random.sample([111, 'aaa', 'ccc','ddd'],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
    #
    # res=''
    # for i in range(6):
    # 从26大写字母中随机取出一个=chr(random.randint(65,90))
    # 从10个数字中随机取出一个=str(random.randint(0,9))
    #
    # 随机字符=random.choice([从26大写字母中随机取出一个,从10个数字中随机取出一个])
    # res+=随机字符

    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))
    ##95GQ49

    三、os模块

    获取某一个文件夹下所有的子文件以及子文件夹的名字
    res=os.listdir('.')
    print(res)


    size=os.path.getsize(r'/Users/linhaifeng/PycharmProjects/s14/day22/01 时间模块.py')
    print(size)

    os.remove() 删除一个文件
    os.rename("oldname","newname") 重命名文件/目录

    应用程序----》"ls /"
    os.system("ls /")

    规定:key与value必须都为字符串

    os.environ['aaaaaaaaaa']='111'
    print(os.environ)


    print(os.path.dirname(r'/a/b/c/d.txt'))
    print(os.path.basename(r'/a/b/c/d.txt'))


    print(os.path.isfile(r'笔记.txt'))
    print(os.path.isfile(r'aaa'))
    print(os.path.isdir(r'aaa'))

    print(os.path.join('a','/','b','c','d'))

    找出其路径 :

    import os
    BASE_DIR=os.path.dirname(os.path.dirname(__file__))
    print(BASE_DIR)
    #H:/
    # 在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())
    
    # H:
    # acde.txt
    # H:acde.txt

    四、sys模块

    import sys
     python3.8 run.py 1 2 3
     sys.argv获取的是解释器后参数值
     print(sys.argv)

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

    打印进度条:

    import time
    
    res=''
    for i in range(50):
        res+='#'
        time.sleep(0.5)
        print('
    [%-50s]' % res,end='')
    [##########################################        ]
    [##################################################]

    优化后打印进度条

    import time
    
    
    def progress(percent):
        if percent > 1:
            percent = 1
        res = int(50 * percent) * '#'
        print('
    [%-50s] %d%%' % (res, int(100 * percent)), end='')
    
    recv_size=0
    total_size=1025011
    
    while recv_size < total_size:
        time.sleep(0.01) # 下载了1024个字节的数据
    
        recv_size+=1024 # recv_size=2048
    
        # 打印进度条
        # print(recv_size)
        percent = recv_size / total_size  # 1024 / 333333
        progress(percent)
    
    [####################################              ] 72%
    [##################################################] 100%





  • 相关阅读:
    Python数据结构-链表
    面试题4:替换空格
    面试题3:二维数组中的查找
    2019.12.17基佬出的一道题
    2019.12.17霍格沃兹测试学院一道题
    python_ck01(虚拟环境管理)
    api_DZFPKJ & api_DZFPCX(get_AES_url代码优化)
    cwyth(自动核销代码)
    api_DZFPKJ & api_DZFPCX
    字符串返回数组并排序(算法题)
  • 原文地址:https://www.cnblogs.com/xiao-zang/p/12601451.html
Copyright © 2011-2022 走看看