zoukankan      html  css  js  c++  java
  • 3.30课堂

    1、时间模块

    1.1 时间模块优先掌握的操作

    1.1.1 time

    import time
    

    1) 时间分为三种格式:

    ① 时间戳:从1970年到现在经过的秒数

    作用:用于时间间隔的计算

    print(time.time())
    
    ② 按照某种格式显示的时间:2020-03-30 11:11:11

    作用:用于展示时间

    print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
    print(time.strftime('%Y-%m-%d %X'))
    
    ③ 结构化的时间

    作用:用于单独获取时间的某一部分

    res=time.localtime()
    print(res)
    print(res.tm_year)
    print(res.tm_yday)
    

    1.1.2 datetime

    import datetime
    
    print(datetime.datetime.now())
    print(datetime.datetime.now() + datetime.timedelta(days=3))
    print(datetime.datetime.now() + datetime.timedelta(weeks=1))
    

    1.2 时间模块需要掌握的操作

    1.2.1 时间格式的转换

    struct_time->时间戳
    import time
    s_time=time.localtime()
    print(time.mktime(s_time))
    

    1.2.2 时间戳->struct_time

    tp_time=time.time()
    print(time.localtime(tp_time))
    

    1.2.3 补充:世界标准时间与本地时间

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

    1.2.4 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'))
    

    1.2.5 !!!真正需要掌握的只有一条:format string<------>timestamp

    '1988-03-03 11:11:11'+7
    
    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)
    
    time.sleep(3)
    

    1.3 了解知识

    import time
    print(time.asctime())
    
    import datetime
    print(datetime.datetime.now())
    print(datetime.datetime.utcnow())
    
    print(datetime.datetime.fromtimestamp(333333))
    

    2、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))
    

    3、os 模块

    import 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'))
    

    推荐用这种

    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())
    
    
    

    4、sys模块

    import sys
    
    python3.8 run.py 1 2 3
    

    sys.argv获取的是解释器后参数值

    print(sys.argv)
    
    src_file=input('源文件路径: ').strip()
    dst_file=input('目标文件路径: ').strip()
    
    src_file=sys.argv[1]
    dst_file=sys.argv[2]
    
    # 判断
    
    with open(r'%s' %src_file,mode='rb') as read_f,
        open(r'%s' %dst_file,mode='wb') as write_f:
        for line in read_f:
            write_f.write(line)
    
    python3.8 run.py src_file dst_file
    
    print('[%-50s]' %'#')
    print('[%-50s]' %'##')
    print('[%-50s]' %'###')
    
    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)
  • 相关阅读:
    CSS之旅——第二站 如何更深入的理解各种选择器
    CSS之旅——第一站 为什么要用CSS
    记录一些在用wcf的过程中走过的泥巴路 【第一篇】
    asp.net mvc 之旅—— 第二站 窥探Controller下的各种Result
    asp.net mvc 之旅—— 第一站 从简单的razor入手
    Sql Server之旅——终点站 nolock引发的三级事件的一些思考
    Sql Server之旅——第十四站 深入的探讨锁机制
    Sql Server之旅——第十三站 对锁的初步认识
    Sql Server之旅——第十二站 sqltext的参数化处理
    Sql Server之旅——第十一站 简单说说sqlserver的执行计划
  • 原文地址:https://www.cnblogs.com/haliluyafeng/p/12602123.html
Copyright © 2011-2022 走看看