• python模块time,random,os


    模块分为三部分:内置模块,第三方模块,自定义模块

    time模块

    print(time.time()) #时间戳,唯一表示时间
    1498029319.0604074
    
    s=time.localtime() #当前结构化时间对象,参数为时间戳,将时间戳转换为结构化时间
    print(s)
    time.struct_time(tm_year=2017, tm_mon=6, tm_mday=21, tm_hour=15, tm_min=15, tm_sec=19, tm_wday=2, tm_yday=172, tm_isdst=0)
    
    s2=time.gmtime() #世界标准时间 UTC时间,同localtime
    print(s2)
    time.struct_time(tm_year=2017, tm_mon=6, tm_mday=21, tm_hour=7, tm_min=15, tm_sec=19, tm_wday=2, tm_yday=172, tm_isdst=0)
    print(time.mktime(time.localtime()))#将结构化时间转化为时间戳的方法
    1498029450.0
    print(time.mktime(time.localtime()))#将结构化时间转化为时间戳的方法
    #time.strftime(format,p_tuple)
    ret=time.strftime('%Y-%m-%d',time.localtime()) #将结构化时间转化为字符串
    print(ret)
    2017-06-21
    
    ret2=time.strptime('1900-03-12','%Y-%m-%d') #将字符串时间转换为结构化时间
    print(ret2)
    time.struct_time(tm_year=1900, tm_mon=3, tm_mday=12, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=71, tm_isdst=-1)

    print(time.asctime()) #将结构化时间转化为字符串时间默认当前时间
    Wed Jun 21 15:34:03 2017
    
    print(time.ctime()) #将时间戳转化为字符串时间默认当前时间
    Wed Jun 21 15:34:03 2017
    
    #time.sleep() #I/O阻塞,不占CPU

    import random
    #print(rangdom.random()) #(0,1)float类型
    #print(random.randint(1,3)) #[1,3]int类型
    #print(random.randrange(1,3)) #[1,3)int类型
    #print(random,choice([12,23,'hello'])) #列表中随机一项
    #print(random.sample([12,23,'hello'],2)) #列表中随机指定数目项
    #print(random.uniform(1,3)) #float类型
    #shuflle #打乱次序
    l=[11,22,33,44]
    random.shuffle(l)
    print(l)
    [33, 22, 11, 44]
    #随机生成验证码
    # def idencode():
    #     ret=''
    #     for i in range(5):
    #         num=str(random.randint(0,9))
    #         alpha=chr(random.randint(97,120))
    #         ALPHA=chr(random.randint(65,90))
    #         s=random.choice([num,alpha,ALPHA])
    #         ret=ret+s
    #     return ret
    # print(idencode())

    hashlib模块

    摘要算法,通过一个函数把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示),目的是为了发现原始数据是否被更改过

    import hashlib
    md5=hashlib.md5()
    a='I am xiao bai'
    a2=a.encode('utf-8')
    md5.update(a2)
    print(md5.hexdigest())
    7b1011fa0c9d90bae496012f40d96e5d
    b='I am'
    b2=' xiao bai'
    c=b.encode('utf-8')
    c2=b2.encode('utf-8')
    md5.update(c)
    md5.update(c2)
    print(md5.hexdigest())
    7b1011fa0c9d90bae496012f40d96e5d

    可以看到两次结果是一致的,摘要算法结果是可以累积的,当数据量很大时可以采用分块的形式来对数据进行计算。

    公司为了安全通常都不会用明文的方式保存用户口令,而是存储用户口令的摘要。有些用户使用123456等简单口令,为了保证安全,公司可以采用加盐的方式对用户口令进行保护,只要Salt不被他人知道,就很难通过MD5反推用户明文口令

    。如果多个用户采用了相同的口令如123456,可以通过把登录名作为Salt的一部分来计算MD5。

    hashlib.md5(''salt'',encode(''utf-8'')

    os模块

    os.getcwd()获取当前工作目录,即当前python脚本的目录路径

    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.listdir('dirname')列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

    os.remove()删除一个文件

    os.rename('oldname','newname')重命名文件/目录

    os.stat('path/filename')获取文件/目录信息

    os.path.abspath(path)返回path规范化的绝对路径

    os.path.dirname(path)返回path的目录。其实就是os.path.split(path)的第一个元素

    os.path.basename(path)返回path最后的文件名,如果path以/或结尾,就会返回空值

    os.path.exists(path)如果path存在,返回True;如果path不存在,返回False

    os.path.join(path1[,path2[,...]])将多个路径组合后返回第一个绝对路径之前的参数将被忽略

    os.path.getatime(path)返回path所指向的文件或者目录的最后存取时间

    os.path.getmtime(path)返回path所指向的文件或者目录的最后修改时间

    os.path.getsize(path)返回path的大小

  • 相关阅读:
    java Class的 getSuperclass与getGenericSuperclass区别
    再有人问你volatile是什么,把这篇文章也发给他
    深入理解乐观锁与悲观锁
    再有人问你Java内存模型是什么,就把这篇文章发给他
    再有人问你synchronized是什么,就把这篇文章发给他
    《成神之路-基础篇》JVM——Java内存模型(已完结)
    css
    css
    require.js
    css -border
  • 原文地址:https://www.cnblogs.com/c491873412/p/7060572.html
Copyright © 2020-2023  润新知