python的time模块&random模块& os模块

1.time模块(★★★)

在Python中,通常有这几种方式来表示时间:
1.时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
2.格式化的时间字符串(format_string)
3.元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
实例:

import time
# 1 time() :返回当前时间的时间戳,秒单位
print(time.time())   # 1473525444.037215
# ------------------------------------------------------------
# 2 localtime([secs])
# 将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准。
time.localtime() #time.struct_time(tm_year=2020, tm_mon=7, tm_mday=28, tm_hour=9, tm_min=29, tm_sec=10, tm_wday=1, tm_yday=210, tm_isdst=0
time.localtime(1595899886.8968737)
# -------------------------------------------------------------
# 3 gmtime([secs]) 和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。secs参数未提供,则以当前时间为准。
time.gmtime()#time.struct_time(tm_year=2020, tm_mon=7, tm_mday=28, tm_hour=1, tm_min=37, tm_sec=31, tm_wday=1, tm_yday=210, tm_isdst=0)
time.gmtime(1595899886.8968737)
# --------------------------------------------------------------
# 4 mktime(t) : 将一个struct_time转化为时间戳。
print(time.mktime(time.localtime()))#1595900628.0
print(time.mktime(time.gmtime()))#1595871828.0
# ----------------------------------------------------------------------------
# 5 asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。
# 如果没有参数,将会将time.localtime()作为参数传入。
print(time.asctime())#Tue Jul 28 22:08:06 2020
t=time.localtime()
time.asctime(t)#Tue Jul 28 22:08:06 2020
# ----------------------------------------------------------------------------------------------
# 6 ctime([secs]) : 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
# None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
time.ctime(1595945286)#Tue Jul 28 22:08:06 2020
time.ctime()#Tue Jul 28 22:15:58 2020
# --------------------------------------------------------------------------------------
# 7 strftime(format[, t]) : 把一个代表时间的元组或者struct_time(如由time.localtime()和
# time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。
print(time.strftime("%Y-%m-%d %X", time.localtime()))#2020-07-28 22:19:46,"%Y-%m-%d %X"为年月日时分秒的格式
# -------------------------------------------------------------------------------------
# 8 time.strptime(string[, format])
# 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
print(time.strptime('2020-07-28 22:19:46', '%Y-%m-%d %X'))#time.struct_time(tm_year=2020, tm_mon=7, tm_mday=28, tm_hour=22, tm_min=19, tm_sec=46, tm_wday=1, tm_yday=210, tm_isdst=-1)
# ----------------------------------------------------------------------------
# 9 sleep(secs)
# 线程推迟指定的时间运行,单位为秒。
time.sleep(10)
# ---------------------------------------------------
# 10 perf_counter()
# 这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。
# 而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行 时间,即两次时间差。
# PS: python3.3之前是用clock(),之后版本弃用改为perf_counter()
a=time.perf_counter()
time.sleep(10)
s=time.perf_counter()
print(s-a)#10.0000659

几种时间的转换
struct_time(元组)
timestamp(时间戳)
format_string(格式化的时间字符串)


image.png

image.png

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([1,'23',[4,5]]))#23   随机从列表取一个值
 
print(random.sample([1,'23',[4,5]],2))#[[4, 5], '23'] 随机从列表取出指定个数个元素组成新列表
 
print(random.uniform(1,3))#1.927109612082716   在 [x, y] 范围内随机生成下一个实数
 
 
item=[1,3,5,7,9]
random.shuffle(item)    #序列的所有元素随机排序
print(item)

写一个随机生成4位验证码的函数

def v_code():

    code = ''#接收返回值
    for i in range(5):#循环4次

        num=random.randint(0,9)#每次循环取[0,9]中一个值
        alf=chr(random.randint(65,90)) #随机生成A-Z中一个
        add=random.choice([num,alf])  #随机选上面生成的字母或者数字
        code += str(add)  #与code做字符串拼接重新赋值给code
    return code

print(v_code())

print(v_code())

3. 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下为"\r\n",Linux下为"\n"
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所指向的文件或者目录的最后修改时间

你可能感兴趣的:(python的time模块&random模块& os模块)