time模块
在python中的时间表现形式:
-
时间戳 (自1970-01-01-00-00 到当前时间,按秒计算,一共过了多少秒
-
格式化时间
返回的是时间的字符串
-
格式化时间对象
返回的是一个元组 元组中有9 个值:
分别代表:年、月、日、时、分、秒、一周中的第几天、一年中的第几天、夏令时
用法:
""" import time 1、获取时间戳 time.time 2、获取格式化时间 获取年月日 time.strftime('%Y-%m-%d') 获取年月日时分秒 time.strftime('%Y-%m-%d %H:%M:%S') %X = %H:%M:%S time.strftime('%Y-%m-%d %X') 3、获取时间对象 time.localtime() 获取当前时间的格式化时间 time.strftime('%Y-%m-%d %H:%M:%S', ) #将字符串格式的时间转换成时间对象 res = time.strptime('2019-01-01', '%Y-%m-%d') print(res) """
用法:
""" 获取当前年月日 print(datetime.date.today()) 获取当前年月日 时分秒 print(datetime.datetime.today()) time_obj = datetime.datetime.today() 查看类型 print(type(time_obj)) 获取当前的年份 print(time_obj.year) 获取当前的月份 print(time_obj.month) 获取当前的日份 print(time_obj.day) UTC时区 #北京时间 print(datetime.datetime.now()) #伦敦时间 print(datetime.datetime.utcnow()) """
""" 日期/时间的计算 日期时间 = 日期时间 '+' or '-' 时间对象 时间对象 = 日期时间 '+' or '-' 日期时间 日期时间: current_time = datetime.datetime.now() print(current_time) 时间对象: #获取7天时间 time_obj = datetime.timedelta(days = 7) print(time_obj) #获取当前时间7天后的时间 时间日期 = 日期时间 '=' or '-' 时间对象 later_time = current_time + time_obj peint(later_time) 时间对象 = 日期时间 '+' or '-' 日期时间 time_new_obj = later_time - current_time print(time_new_obj) """
使用方法:
import random """ 随机模块 随机获取1-9中任意的整数 res = random.randint(1,9) print(res) 洗牌 可将可迭代中的值进行乱序 list = ['红桃A', '梅花A', '红桃Q', '方块K'] random.shuffle(list) print(list) # 随机获取可迭代对象中的某一个值 list1 = ['红桃A', '梅花A', '红桃Q', '方块K'] res = random.choice(list1) print(res) """
案例:
""" chr(7) 可以将ASCII表中值转换成对应的字符 random.randint 随机获取一个整数 random.choice 随机获取一个值 """ #获取任意长度的随机验证码 # def get_code(n): # code = '' # for line in range(n): # #随机获取一个小写字母 # res1 = random.randint(97, 122) # lower_str = chr(res1) # # #随机获取一个大写字母 # res2 = random.randint(65, 90) # upper_str = chr(res2) # # #随机获取一个数字 # number = str(random.randint(0, 9)) # code_list = [lower_str, upper_str, number] # random_code = random.choice(code_list) # code += random_code # return code # code = get_code(5) # print(code) # print(len(code))
与操作系统交互的模块
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
获取当前文件中的上一级目录 # DAY15_PATH = os.path.dirname(__file__) # print(DAY15_PATH) # # # 项目的根目录,路径相关的值都用 “常量” # BASE_PATH = os.path.dirname(DAY15_PATH) # print(BASE_PATH) # # # 路径的拼接: 拼接文件 “绝对路径” # TEST_PATH = os.path.join(DAY15_PATH, '老男孩老师们的写真集.txt') # print(TEST_PATH) # # # 判断“文件/文件夹”是否存在:若文件存在返回True,若不存在返回False # print(os.path.exists(TEST_PATH)) # True # print(os.path.exists(DAY15_PATH)) # True # # # 判断“文件夹”是否存在 # print(os.path.isdir(TEST_PATH)) # False # print(os.path.isdir(DAY15_PATH)) # True # # # 创建文件夹 # DIR_PATH = os.path.join(DAY15_PATH, '老男孩老师们的写真集') # # os.mkdir(DIR_PATH) # 删除文件夹: 只能删除 “空的文件夹” # os.rmdir(DIR_PATH)
sys 模块
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import sys #获取当前的python 解释器的环境变量 print(sys.path) # 将当前项目添加到环境变量中 BASE_PATH = os.path.dirname(os.path.dirname(__file__)) sys.path.append(BASE_PATH) # 获取cmd终端的命令行 python3 py文件 用户名 密码 print(sys.argv) # 返回的是列表['']
hashlib 模块
hashlib 是一个加密模块 :
--内置很多算法
摘要算法:
--摘要是从某一段内容中获取的加密字符
--摘要一样,密码就一样
----- 密文密码就是一个摘要
使用方法:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import hashlib md5_obj = hashlib.md5() srt = '123' md5_obj.update(srt.encod('nut-8')) # 转换字符编码 res = md5_obj.hexdigest() # 加密 但是会存在撞库破解的风险,所以我们要采取一个措施:加盐 import hashlib def pwd_md5(pwd): # md5_obj = hashlib.md5() # print(type(md5_obj)) str1 = pwd # '1234' # update中一定要传入bytes类型数据 md5_obj.update(str1.encode('utf-8')) # 创造盐 sal = '坦克怎么这么帅啊!' # 加盐 md5_obj.update(sal.encode('utf-8')) # 得到一个加密后的字符串 res = md5_obj.hexdigest() # eb1ca06cf5940e9fb6ef39100ec72c94 return res