import datetime# 获取当前年月日# print(datetime.date.today())# 获取当前年月日时分秒# print(datetime.datetime.today())# l1 = datetime.datetime.today()# print(type(time_obj))# print(time_obj.year)# print(time_obj.month)# print(time_obj.day)# 从索引0开始计算周一# UTC# print(l1.weekday()) # 0-6# ISO# print(l1.isoweekday()) # 1-7# 北京时间# print(datetime.datetime.now())# 格林威治# print(datetime.datetime.utcnow())'''日期/时间的计算 (*******) 日期时间 = 日期时间 “+” or “-” 时间对象 时间对象 = 日期时间 “+” or “-” 日期时间'''# 日期时间:# s1 = datetime.datetime.now()# print(s1)# 获取七天时间# l1 = datetime.timedelta(days=7)# print(l1)# 获取当前七天的时间# 日期时间 = 日期时间‘+’ or ‘-’ 时间对象# l2 = s1 + l1# print(l2)import random# 随机获取1- 9中任意的整数# l1 = random.randint(1, 9)# print(l1)# 默认获取0-1中间任意小数# l2 = random.random()# print(l2)# 打乱顺序# l3 = ['wanglu','zhaoqiao','yinglili','jinyi']# random.shuffle(l3)# print(l3)# 随机获取可迭代对象中的某个值# l4 = ['a', 'b', 'c', 'd', 'e']# s2 = random.choice(l4)# print(s2)'''随机验证码需求: 大小写字母、数字组合而成 组合5位数的随机验证码 前置技术: chr() 可以将ASCII表中值转换成对应的字符 random.choice'''# 获取任意长度的随机验证码# def get_code(n):# code = ''# # 每次循环只从大小写字母、数字中取出一个字符# for i in range(n):# # 随机获取一个小写字母# r1 = random.randint(97, 122)# s1 = chr(r1)## # 随机获取一个大写字母# r2 = random.randint(65, 90)# s2 = chr(r2)## # 随机获取一个数字# r3 = str(random.randint(0, 9))## code_list = [s1, s2, r3]## random_code = random.choice(code_list)## code += random_code## return code## code = get_code(5)# print(code)'''os与操作系统交互的模块'''import os# 获取当前项目根目录# 获取当前文件中的上一级目录# LIANXI = os.path.dirname(__file__)# print(LIANXI)# 项目的根目录,路径相关的值都用'常量'# DAY15 = os.path.dirname(LIANXI)# print(DAY15)# 路径拼接:拼接文件‘结对路径’# FOO = os.path.join(LIANXI, '二次元.txt')# print(FOO)# 判断'文件/文件夹'是否存在:返回布尔值# print(os.path.exists(FOO)) # False# print(os.path.exists(LIANXI)) # True# 判断'文件夹'是否存在# print(os.path.isdir(FOO)) # False# print(os.path.isdir(LIANXI)) # True# 创建文件夹# CHUANG_JIAN = os.path.join(LIANXI, '三次元')# os.mkdir(CHUANG_JIAN)# 删除文件夹# coo1 = os.listdir()# print(coo1)# 让用户选择文件# s1 = os.listdir(r'D:\python上海正式课\课后随笔\15\day15\二次元')# # print(s1)# while True:# # 1、打印二次元老婆# for index, name in enumerate(s1):# print(f'编号:{index} 文件名:{name}')## choice = input('选择你的真爱--->(三笠天下第一) 编号: ').strip()# # 限制用户必须输入数字,数字的范围必须在编号内# # 不符合,重新输入# if not choice.isdigit():# print('老婆序号')# continue## # 正确,继续执行# choice = int(choice)## # 判断超出范围,重新输出# if choice not in range(len(s1)):# print('不要太贪心了')# continue## s2 = s1[choice]## s3 = os.path.join(r'D:\python上海正式课\课后随笔\15\day15\二次元', s2)# print(s3)## with open(s3, 'r', encoding='utf-8')as f:# print(f.read())'''hashlib是一个加密模块: 内置了很对算法: MD5(*******):不可解的算法(2018年以前)'''import hashlibdef 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# user_str1 = f'tank:1234'## user_str2 = f'tank:{res}'# with open('user.txt', 'w', encoding='utf-8') as f:# f.write(user_str2)# 模拟用户登陆操作# 获取文件中的用户名与密码with open('user.txt', 'r', encoding='utf-8') as f: user_str = f.read()file_user, file_pwd = user_str.split(':')# 用户输入用户名与密码username = input('请输入用户名:').strip()password = input('请输入密码:').strip() # 1234# 校验用户名与密码是否一致if username == file_user and file_pwd == pwd_md5(password): # pwd_md5('1234') print('登陆成功')else: print('登陆失败')