python内几种常用内置模块的介绍,包括time模块,datetime模块,random模块,os模块,sys模块,hashlib模块
介绍Python中的几种常用模块
1.time模块
与时间处理有关的python内置模块
-
时间戳:自1970-01-01 00.00:00到当前时间,按秒计算,到现在为止一共多少秒
import time # 导入时间模块包
import time
print(time.time()) # 获取当前时间的时间戳
'''
1573887905.6273756
'''
print(time.localtime()) # 获取当地时间格式化对象,即struct.time(为九个元素的元组)
'''
time.struct_time(tm_year=2019, tm_mon=11, tm_mday=16, tm_hour=15,tm_min=5, tm_sec=5, tm_wday=5, tm_yday=320, tm_isdst=0)
'''
res = time.localtime()
print(res.tm_hour)
print(res.tm_mday)
# 可以将时间元素返回出来
15
16
print(time.gmtime())
# ,将一个时间转化为UTC时区(0时区)的struct.time,# 即获取格林威治时间格式化对象
'''
time.struct_time(tm_year=2019, tm_mon=11, tm_mday=16, tm_hour=7, \
tm_min=5, tm_sec=5, tm_wday=5, tm_yday=320, tm_isdst=0)
'''
# print(time.strftime())
# strftime()可以把一个代表的时间的元组或struct_time转化为格式化的时间字符串,若t未指定,则以当前时间为参数
#格式参考下方官方指定
print(time.strftime('%Y-%m-%d %H:%M:%S'))
# 2019-11-16 15:34:30
print(time.strftime('%Y-%m-%d %X'))
# %H:%M:%S = %X
# 2019-11-16 15:34:30
"""
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale's equivalent of either AM or PM.
"""
print(time.strptime('2018-10-05 11:10:10','%Y-%m-%d %H:%M:%S'))
# 把一个格式化的时间转化成格式化时间对象(struct_time)
# strptime和strftime是互逆操作
# time.struct_time(tm_year=2018, tm_mon=10, tm_mday=5, \
# tm_hour=11, tm_min=10, tm_sec=10, tm_wday=4, tm_yday=278, tm_isdst=-1)
# time.sleep('参数')
# 里面的参数指的是秒,可以将程序延长到参数所指定的时间后再执行
print(time.asctime())
# 将一个时间的元组或者或者struct_time表示为下面这种形式,不传参数则默认为当前时间
'''
Sat Nov 16 15:14:11 2019
'''
print(time.ctime())
print(time.ctime(1573887905.6273756))
# 将时间戳改为下面这种形式,不传参则默认为当前时间戳
'''
Sat Nov 16 15:18:05 2019
Sat Nov 16 15:05:05 2019
'''
2.datetime模块
和时间有关的python内置模块
import datetime
print(datetime.date.today()) # 获取当前日期
# 2019-11-16
print(datetime.datetime.today()) # 获取当前日期时间 (北京时间)
# 2019-11-16 16:16:35.420231
print(datetime.datetime.now()) # 获取当前日期时间,和上面的方法没有多少区别
# 2019-11-16 16:16:35.420231
print(datetime.datetime.utcnow()) # 格林威治时间
# 2019-11-16 08:16:35.420231
res = datetime.datetime.today()
print(res.hour) # 可以提取时
# 16
print(res.year) # 可以提取年
# 2019
print(res.month) # 可以提取月
'''
日期/时间的计算 (*******)
日期时间 = 日期时间 “+” or “-” 时间对象
时间对象 = 日期时间 “+” or “-” 日期时间
'''
# 当前时间
current_time = datetime.datetime.now()
print(current_time)
# 2019-11-16 16:48:58.950441
# 时间对象
# 一段时间间隔后的时间
datetime_obj = datetime.timedelta(days = 3)
print(datetime_obj)
# 3 days, 0:00:00
# 获取当前时间3天后的时间
# 日期时间 = 当前时间 “+” or “-” 时间对象
late_time = current_time + datetime_obj
print(late_time)
# 2019-11-19 16:48:58.950441
# 时间对象 = 日期时间 - 当前时间
datetime_obj = late_time - current_time
print(datetime_obj)
# 3 days, 0:00:00
3.random模块
随机数模块
import random
print(random.randrange(1,10)) # 返回一个1到10内的随机数,但是取不到10
print(random.randint(1,10)) # 返回一个1到10内的随机数,可以取到10
print(random.randrange(0,10,2)) # 返回一个0到10内的随机偶数,后面的2表示步长
print(random.random()) # 随机返回一个1以内的浮点数
l1 = [1, 2, 3, 4, 5, 6]
random.shuffle(l1) # 将原序列(只有列表可以)打乱顺序重新随机排列,又叫洗牌
print(l1)
l2 = [2,4,5,7,9,] # 在给定序列(有索引的可迭代对象,list,tuple)中随机抽一个字符,集合和字典不能随机选取
# l3 = {1,2,3,4,5}
# l4 = {'a':1,'b':2,'c':3}
l5 = (1,2,3,4,5)
print(random.choice(l2))
# print(random.choice(l3))
# print(random.choice(l4))
print(random.choice(l5))
l = random.sample('jsdiand',3) # 从给定的字符串组中随机抽取特定数量的字符,并返回列表
print(l)
# 可以做一个简单的验证码
n = 0
l1 = ''
while n < 5 :
a = '123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
s = random.sample(a,1) # 从a中随机选出一个值,返回的是列表
for i in s: # 将字符串取出来
l1 += i # 拼接字符串
n += 1
random.shuffle(list(l1)) # 再洗一次牌
print(l1)
b = '123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
c = random.sample(b, 10)
for i in c:
print(i)
'''
需求:
大小写字母、数字组合而成
组合5位数的随机验证码
前置技术:
random.randint(1,10) # 在1到10中随机选出一个数
- chr(97) # 可以将ASCII表中值转换成对应的字符
# print(chr(101))
- random.choice
'''
# chr(97) 可以将ASCII码中的值转换成对应的字符
# 获取任意长度的随机验证码
def get_code(n):
code = ''
# 每次循环只从大小写字母、数字中取出一个字符
# for line in range(5):
for line in range(n):
# 随机获取一个小写字母
res1 = random.randint(