import time import datetime import os import sys import random import hashlib
time模块
时间戳(Timestamp)
time.time( ) 时间戳是从1970年1月1日0时0分0秒开始计数,是以秒计数的float类型数字。
格式化时间 (Format String)
time.strftime( ) ,括号中可以传 (%Y,%m,%d,%H,%M,%S)
import time time.strftime('%Y-%m-%d') time.strftime('%Y-%m-%d %H:%M:%S') time.strftime('%Y-%m-%d %X') time.strftime('%X')
“时分秒” 可以通过%X全部一起打印出来
格式化时间对象 (struct time)
struct_time = time.localtime() #将本地时间戳转为格式化时间对象 struct_time = time.gmtime() # 将标准时间戳转为格式化时间对象 res1 = time.strftime('%X', time.localtime()) # 当前时区的格式化时间对象转为格式化时间 res2 = time.strftime('%X', time.gmtime()) # # 将时间对象转化为格式化时间 res3 = time.strptime('2019-4-5','%Y-%m-%d') # 将格式化时间转化为格式化时间对象 # 格式化时间对象返回的是元组,其中tm_yday表示时间是一年中的第几天
datetime模块
可以用来计算
获取当前的年月日:
import datetime print(datetime.date.today()) # 获取当前的日期 print(datetime.datetime.today()) # 获取当前的时间和日期 time_obj = datetime.datetime.today() # 获取当前的时间和日期,变成时间对象 print(datetime.datetime.now()) # 当前时间 print(datetime.datetime.utcnow()) # 标准时间
时间及日期的运算
import datetime time_obj = datetime.datetime.today() # 获取当前的时间和日期,变成时间对象 later = datetime.timedelta(hours=20) # 差值的时间对象 new_date = time_obj + later # 时间对象之间可以进行加减运算
random模块
基本内容
import random a = random.randint(1,9) # 可以取到两侧的边界 print(a) b = random.random() # 取值范围在0和1之间的任意数 print(b) list1 = [1, 2, 3, 4, 5, 6] new_list = random.shuffle(list1) # 打乱可迭代对象中的排列顺序(shuffle洗牌) print(list1) element = random.choice(range(5)) # 在可迭代对象中随机取出一个值(choice抽牌) print(element)
需求:实现5位数的验证码,其中要包含大小写英文字母和数字。
chr(数字) 可以将将数字的值转化成对应的ASCII码表中的符合 在ASCII码表中:a-z[97,122],A-Z[65,90],0-9[48,57],空格是32,NULL是0
def veri_code(n): res = '' for i in range(n): low_alpha = chr(random.randint(97, 122)) upper_alpha = chr(random.randint(65, 90)) num = str(random.randint(0, 9)) list = [low_alpha, upper_alpha, num] res = res + random.choice(list) return res verification_code = veri_code(9) print(verification_code)
os模块
主要涉及:1、当前文件的绝对路径 2、上级目录的绝对地址 3、如何拼接文件路径 4、判断文件以及文件夹是否存在 5、判断是否是文件夹 6、创建文件夹 7、删除文件夹 8、打印文件夹下的目录
# _*_ coding: gbk _*_ # @Author: Wonder import os BASE_PATH = os.path.abspath(__file__) # 获取当前文件的绝对路径 print(BASE_PATH) ROUTE = os.path.dirname(__file__) # 获取当前文件的上一级目录的地址 print(ROUTE) TEST_PATH = os.path.join(ROUTE, 'abc.txt') # 拼接文件地址 print(TEST_PATH) print(os.path.exists(ROUTE)) # 判断文件路劲是否存在 print(os.path.exists(BASE_PATH)) #判断的结果为True或许False print(os.path.isdir(BASE_PATH)) #判断文件夹是否存在(isdirector) # 创建文件夹 NEWFILE_PATH = os.path.join(ROUTE, 'os的演示') #先拼接出地址 os.mkdir(NEWFILE_PATH) # 再创建文件夹 #删除文件夹 os.rmdir(NEWFILE_PATH) #删除文件夹也是基于路径操作的,如果文件夹中有内容,就不允许删除。 #获取文件夹中所有的文件名 dirctory_list = os.listdir(ROUTE) #参数也是文件夹的路径 print(dirctory_list) list1 =list(enumerate(dirctory_list)) # enumerate是枚举函数,在原可迭代对象每个元素前加上序号,组成元组 print(list1)
sys模块
主要用于增加环境变量,与python解释器交互
sys.path 是当前的环境变量,是一个列表
sys.path.append(os.path.dirname(file))
sys.agrv 此处功能欠缺,需要补充......
获取cmd终端的命令行
hashlib模块
常用的加密方法MD5,只要原始值一样,通过MD5加密后的结果也一样。容易被撞库导致密码被暴力破解。
因此,在加密过程中通过加盐,保证了明文和密文之间不同步,在验证密码的时候也需要加盐进行对比判断。
md5_obj = md5() # 建立空对象 md5_obj.update(password.encode('utf-8')) # 此处要以bytes形式增加,加盐同理 real_pwd = md5_obj.hexdigest() # 进行加密处理
以下为对密码加密的实例
from hashlib import md5 import time md5_obj = md5() # 建立空对象 print(type(md5_obj)) username = input('>>>请输入用户名') password = input('>>>请输入密码') md5_obj.update(password.encode('utf-8')) # 此处要以bytes形式增加 sal = '坦克车' md5_obj.update(sal.encode('utf-8')) real_pwd = md5_obj.hexdigest() # 进行加密处理 with open(f'{username}.txt', 'w', encoding='utf-8')as wf: wf.write(f'{username}:{real_pwd}:{time.strftime("%Y-%m-%d %X")}')
来源:https://www.cnblogs.com/csic716/p/11874781.html