zoukankan      html  css  js  c++  java
  • python中常用模块的介绍自取。

    python小白集中营

    一,time模块与datetime模块

    1.1time 模块

    时间的三种格式:

    1,时间戳:秒数=>用于时间计算:

    # 浮点型
    start=time.time()
    print(start,type(start))
    

    结果显示:

    1596092716.0356612 <class 'float'>
    

    2,格式化的字符串=>用于显示给人看

    # str型
    res=time.strftime("%Y-%m-%d %H:%S:%M %p")
    res=time.strftime("%Y-%m-%d %X")
    print(res,type(res))
    

    结果显示:

    2020-07-30 15:05:16 <class 'str'>
    

    3,结构化的时间=>获取时间的某一部分:

    # time.struct_time 型
    start=time.time()
    print(start,type(start))
    res = time.localtime()
    res1 = time.gmtime()
    
    print(res,type(res))
    print(res.tm_year)
    
    print(res)
    print(res1)
    

    结果显示:

    time.struct_time(tm_year=2020, tm_mon=7, tm_mday=30, tm_hour=15, tm_min=5, tm_sec=16, tm_wday=3, tm_yday=212, tm_isdst=0) <class 'time.struct_time'>
    2020
    
    time.struct_time(tm_year=2020, tm_mon=7, tm_mday=30, tm_hour=15, tm_min=5, tm_sec=16, tm_wday=3, tm_yday=212, tm_isdst=0)
    
    time.struct_time(tm_year=2020, tm_mon=7, tm_mday=30, tm_hour=7, tm_min=5, tm_sec=16, tm_wday=3, tm_yday=212, tm_isdst=0)
    

    三种类型转换示意图

    在这里插入图片描述

    1.2 time模块 时间转换

    一,时间戳—》格式化的字符串

    代码示意:

    struct_time=time.localtime(3333.3)
    res=time.strftime("%Y:%m",struct_time)
    print(res)
    

    结果:

    1970:01  #时间是从1970年的1月1日0时0分0秒开始计算的
    

    二,格式化的字符串—》时间戳

    代码示意:

    struct_time=time.strptime("2017-07-03 11:11:11","%Y-%m-%d %H:%M:%S")
    res=time.mktime(struct_time)
    print(res)
    

    结果:

    1499051471.0 #时间是从1970年的1月1日0时0分0秒开始计算的
    

    三,ctime,asctime

    代码示意:

    print(time.ctime(3333.3))
    print(time.asctime(time.localtime(3333.3)))
    

    结果:

    Thu Jan  1 08:55:33 1970 #时间是从1970年的1月1日0时0分0秒开始计算的
    Thu Jan  1 08:55:33 1970 #时间是从1970年的1月1日0时0分0秒开始计算的
    

    四,time.sleep()

    代码示意:

    time.sleep(3)
    

    结果:

    #程序在执行这个语句的时候回暂停在哪里,()内填写暂停的秒数,也就是时间。
    

    2.1 datime 模块

    需要用到的一些操作实例:

    #时间加减
    import datetime
    
    print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925
    print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式 2016-08-19
    print(datetime.datetime.now() )
    print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
    print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
    print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
    print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分
    c_time  = datetime.datetime.now()
    print(c_time.replace(minute=3,hour=2)) #时间替换
    

    结果:

    2020-07-30 15:22:39.656941
    2020-07-30
    2020-07-30 15:22:39.656941
    2020-08-02 15:22:39.656941
    2020-07-27 15:22:39.656941
    2020-07-30 18:22:39.656941
    2020-07-30 15:52:39.656941
    2020-07-30 02:03:39.656941    
    

    二,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([1,'23',[4,5]]))#1或者23或者[4,5]
    print(random.sample([1,'23',[4,5]],2))#列表元素任意2个组合
    print(random.uniform(1,3))#大于1小于3的小数,如1.927109612082716
    item=[1,3,5,7,9]
    random.shuffle(item) #打乱item的顺序,相当于"洗牌"
    print(item)
    

    结果一:

    0.9532292734481836
    2
    2
    23
    [1, [4, 5]]
    1.0402486794042074
    [1, 3, 5, 7, 9]
    

    结果一:

    0.24898821184452713
    1
    1
    23
    [[4, 5], 1]
    1.7040261265527323
    [5, 3, 1, 7, 9]
    

    随机验证码:

    程序本体与注释:

    def yz(n): #有参函数,决定我们需要得到的验证码是几位的
        res=''
        for i in range(n):
            s1=str(random.randint(0,9))#数字的随机取出记住要转为str类型
            s2=chr(random.randint(65,90))#大写的英文字母类型,chr可以帮我们转换
            s3=chr(random.randint(97,122))#小写的英文字母类型,chr可以帮我们转换
            res+=random.choice([s1,s2,s3])#在这三个溢出循环出的值中随机取一个
        return res
    print(yz(4))
    print(yz(6))
    print(yz(8))
    

    结果展示:

    n3X3
    5ErBt7
    x6pohG28
    

    三,os模块

    os模块是以个与操作系统交互的接口以下是它的功能表:

    os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
    os.curdir  返回当前目录: ('.')
    os.pardir  获取当前目录的父目录字符串名:('..')
    os.makedirs('dirname1/dirname2')    可生成多层递归目录
    os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove()  删除一个文件
    os.rename("oldname","newname")  重命名文件/目录
    os.stat('path/filename')  获取文件/目录信息
    os.sep    输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    os.linesep    输出当前平台使用的行终止符,win下为"	
    ",Linux下为"
    "
    os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
    os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
    os.system("bash command")  运行shell命令,直接显示
    os.environ  获取系统环境变量
    os.path.abspath(path)  返回path规范化的绝对路径
    os.path.split(path)  将path分割成目录和文件名二元组返回
    os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
    os.path.basename(path)  返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
    os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
    os.path.isabs(path)  如果path是绝对路径,返回True
    os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
    os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
    os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
    os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
    os.path.getsize(path) 返回path的大小
    

    我们常用的方法有什么:

    #当前文件目录
    print(__file__)
    #上一级文件目录
    print(os.path.abspath(__file__))
    
    #文件路径拼接
    res=os.path.join('a','b','c','aaa.josn')
    print(res)
    
    #上一级文件目录的上一级文件目录
    # 方法一(我们一般现在多数使用的就是这个方法)
    print(os.path.dirname(os.path.dirname(__file__)))
    
    # 方法二(有应用场景,但是我们现在不怎么使用,以后可以在架构中使用)
    res=os.path.join(__file__
                     ,'..',
                     '..')
    # 需要搭配 normpath使用
    print(res)
    print(os.path.normpath(res))
    
    

    运行结果:

    E:Python3.8.3python38.exe "E:/code/s15-day21/3. os模块.py"
    E:/code/s15-day21/3. os模块.py
    E:codes15-day213. os模块.py
    acaaa.josn
    E:/code
    E:/code/s15-day21/3. os模块.py....
    E:code
    

    四,subprocess模块

    import subprocess
    obj = subprocess.Popen("blak", shell=True,"输入cmd端口代码"
                           stdout=subprocess.PIPE,#如果运行正确的话在这个里面调
                           stderr=subprocess.PIPE,#如果运行错误的话在这个里面调
                           )
    res1=obj.stdout.read()
    res2=obj.stderr.read()
    # print(res1.decode('gbk'))
    print(res2.decode('gbk'))
    

    五,sys模块

    sys模块我们可能会使用到的一些.功能:

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

    拷贝功能:

    import sys
    import os
    
    # src_file=sys.argv[1]
    # dst_file=sys.argv[2]
    
    src_file=input('请输入源文件地址:').strip()
    dst_file=input('请输入目标文件地址:').strip()
    if os.path.exists(src_file):
        with open(src_file,mode='rb') as f1,open(dst_file,mode='wb') as f2:
            for a in f1:
                f2.write(a)
    print('源文件啊不存在。')
    
    #注释掉的两句话是因为需要在cmd环境下运行的,我们只需要在cmd中运行
    #然后我们在后面输入上我们需要输入的 源文件地址"源文件地址" "目标文件地址" 两个文件之间用空格隔开
    

    六,打印进度条

    打印进度条代码简单无脑示例一:

    import time
    print("[#               ]",end='')
    time.sleep(0.3)
    print("
    [##              ]",end='')
    time.sleep(0.3)
    print("
    [###             ]",end='')
    time.sleep(0.3)
    print("
    [####            ]",end='')
    

    结果:

    自行运行看结果

    打印进度条代码二:

    import time  #导入时间模块
    #我们将运行的代码放进函数中,因为我们以后可能很多地方都可能用到这个功能。
    def progress(percent):
        if percent > 1:#重点用处是判断大小要是文件大小是1025,下载第二次很可能就会变成199%所以我们要判断是不是大于1,大于1 就直接变成1就不会超过100%了
            percent=1
        print("
    [%-50s] %d%%" % ("#"*int(50*percent),int(100 * percent)),end='')
    
    total_size = 102400#设置文件大小
    recv_size = 0 #我们下载的初始值大小一定要为0
    while recv_size < total_size:  #判断我们下载的完成进度。
        # 每次下载1024
        time.sleep(0.3)#模拟下载的时间延时
        recv_size+=1024 #模拟下载的字节速度
        percent = recv_size / total_size #我们不能取证,因为肯定是小于1的取整的话就是0了
        progress(percent) #导入到函数中
    

    结果:

    自行运行看结果

    努力学习!
  • 相关阅读:
    ajax三级联动
    ajax基础
    pdo连接数据
    jquery选择器和基本语句
    会话
    封装连接类
    1218数据访问
    php登陆与注册
    数据库连接和乱码问题
    mysql 严格模式 Strict Mode说明(text 字段不能加默认或者 不能加null值得修改方法)
  • 原文地址:https://www.cnblogs.com/Orange-YXH/p/13648110.html
Copyright © 2011-2022 走看看