常用的内置模块

发布时间 2023-06-09 18:37:49作者: Maverick-Lucky

time模块

在python中,通常有三种方式来表示时间:

  1.时间戳:秒数,浮点型

  2.结构化时间(struct_time)

  3.格式化的时间字符串(Format String)

时间戳是计算机能识别的时间,我们看不懂

python中时间日期格式化符号

%Y:表示四位数的年份(000-9999)

%y:表示两位数的年份(00-99)

%m:表示月份(1-12)

%M:表示分钟(0==59)

%d:表示一个月中的一天(0-31)

%H:表示二十四制小时(00-23)

%I:表示十二制小时(01-12)

%S:表示秒数

%a:本地简化星期名称

%A:本地完整星期名称

%b:本地简化月份名称

%B:本地完整月份名称

%c:本地相应的日期、时间

%j:一年里的一天

%p:本地A.M.或P.M.的等价符

%U:一年中的星期数(00-53)星期天为一周的开始

%w:星期几(0-6),星期天为开始

%W:一年中的星期数(00-53)星期一为星期的开始

%x:本地相应的日期表示

%X:本地相应的时间表示

%Z:当前时区的名称

%%:%号本身

 

 1 # 使用时间模块,需要导入time模块
 2 import time 
 3 time.time()   # 时间戳
 4 time.sleep(3)   # 休眠多少秒
 5 res = time.strftime('%Y-%m-%d %H:%M:%S')  # 2023-06-09 15:18:45 
 6 res = time.strftime('%Y-%m-%d %X')  # 2023-06-09 15:20:13
 7 res = time.strftime('%Y-%m-%d %H:%M')  # 2023-06-09 15:21
 8 res = time.strftime('%Y-%m-%d %H')  # 2023-06-09 15  %H:24小时制小时数(0-23)
 9 res = time.strftime('%Y-%m-%d %I')  # 2023-06-09 03  %I:12小时制小时数(01-12)
10 res = time.strftime('%y-%m')  # 23-06
11 res = time.strftime('%y-%m %a')  # 23-06 Fri
12 res = time.strftime('%y-%m %b')  # 23-06 Jun
13 res = time.strftime('%y-%m %B')  # 23-06 June
14 res = time.strftime('%y-%m %c')  # 23-06 Fri Jun  9 15:31:02 2023
15 res = time.strftime('%y-%m %j')  # 23-06 160
16 res = time.strftime('%y-%m %p')  # 23-06 PM
17 res = time.strftime('%y-%m %U')  # 23-06 23
18 res = time.strftime('%y-%m %w')  # 23-06 5
19 res = time.strftime('%y-%m %%a')  # 23-06 %a
20 print(res)

三种格式时间之间的转换

                                              

时间戳和结构化时间之间的转换

# 将时间戳转换为结构化时间(struct_time)
res = time.time()  # 1686298502.428151
res1 = time.gmtime(1686298502.428151)
# time.struct_time(tm_year=2023, tm_mon=6, tm_mday=9, tm_hour=8, tm_min=15, tm_sec=2, tm_wday=4, tm_yday=160, tm_isdst=0)
res2 = time.localtime(1686298502.428151)
# time.struct_time(tm_year=2023, tm_mon=6, tm_mday=9, tm_hour=16, tm_min=15, tm_sec=2, tm_wday=4, tm_yday=160, tm_isdst=0)
print(res2)


# 将结构化时间转换为时间戳
time_tuple = time.localtime(1686298502.428151)
print(time.mktime(time_tuple))  # 1686298502.0

结构化时间(struct_time)与 格式化的时间字符串(Format String)的转化

#结构化时间转换为格式化时间字符串
res = time.strftime("%Y-%m-%d %X")
print(res)  #  2023-06-09 16:53:20
res1 = time.strftime("%Y-%m-%d",time.localtime(1686298502.428151))
print(res1)  # 2023-06-09

#字符串时间-->结构化时间
res2 = time.strptime("2023-06-09","%Y-%m-%d")
print(res2)
# time.struct_time(tm_year=2023, tm_mon=6, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=160, tm_isdst=-1)
res3 = time.strptime("06/09/2023","%m/%d/%Y")
print(res3)
# time.struct_time(tm_year=2023, tm_mon=6, tm_mday=9, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=160, tm_isdst=-1)

 

datetime模块

日期对象 = 日期对象 +/- timedelta对象
timedelta对象 = 日期对象 +/- 日期对象

自定义操作时间,可以对时间进行运算操作

import datetime 
#timedelta 可以对时间进行运算
tdelta = datetime.timedelta(days=7)
print(tdelta)   #7 days, 0:00:00
tday = datetime.datetime.today()
print("7天之后的日期是:%s" % (tday + tdelta))
print("7天之前的日期是:%s" % (tday - tdelta))
# 7天之后的日期是:2023-06-16 16:49:29.762151
# 7天之后的日期是:2023-06-02 16:49:29.762151

 

random模块

随机生成小数:

random.random()  生成大于0小于1之间的小数

 random.uniform(1,3)  生成大于1小于3的小数

随机生成整数:

 random.randint(1,5)  生成大于等于1且小于等于5的整数

random.randrange(1,10,2)  生成大于1且小于10的奇数

随机选择一个返回:

 random.choice([1,'23',[4,5]])  括号里的值随机进行一个返回

随机选择多个返回:

 random.sample([1,'23',[4,5]],2)   列表元素任意两个组合(任意几个数字为后面写的参数)

打乱列表顺序:

random.shuffle(i)

sys模块

sys.argv 命令行参数List,第一个元素是程序本身路径

import sys

print(sys.argv)  # ['D:\\python_study\\正则表达式.py']
print(sys.argv[0])   #D:\python_study\正则表达式.py

sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)
sys.version 获取Python解释程序的版本信息
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称

异常处理

try:
    res=sys.argv[2]
except Exception:
    pass

os模块

 os模块是与操作系统交互的一个接口