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的大小

原文地址:https://www.cnblogs.com/c491873412/p/7060572.html