# 模块:在python里一个py 文件,就可以理解为模块 # 不是所有的py文件都能作为一个模块来导入 # 如果想要让一个py文件能够被导入,模块名字必须要遵守命名规则 # python为了方便我们开发,提供了很多内置模块 # 导入这个模块以后,就可以使用这个模块里的方法和变量 导入方式: import time # 1、使用import 模块名直接导入一个模块 常用 import datetime as dt # 2、导入模块并给这个模块起个别名 from random import randint # 3、from 模块名 import函数名,导入一个模块里的方法或变量 from math import * # 4、from 模块名 import * 导入这个模块里面的所有方法和变量 from copy import deepcopy as dp # 5、from 模块名 import 函数名 as 别名
常用模块,有更新时全部添加到此处
- os 操作系统模块
- sys 系统模块
- math 数学模块
- random 模块用来生成一个随机数
- datetime 日期模块
- time 时间模块
- calendar 日历模块
- hashlib与hmac 加密模块
- uuid 用来生成一个全局唯一的id
1、os 全称operationSystem操作系统,os模块里提供的方法就是用来调用操作系统里的方法
import os #获取操作系统的名字, windows系列==nt/非windows= posix print(os.name) #查看当前使用的是什么系统 print(os.sep) # 获取路径分隔符windows = \ 非windows = / print(os.environ) # 获取到环境变量配置 os.environ.get('PATH') #获取指定的环境变量配置 print(os.path.abspath('main.py')) # 获取文件的绝对路径 print(os.path.isdir('main.py')) # 判断是否是文件夹 print(os.path.isfile('main.py')) #判断是否是文件 print(os.path.exists('main.py')) # 判断文件是否存在 print(os.path.splitext('2020.2.21.demo.py')) # 分割文件名与后缀名 # os 里其他方法 print(os.getcwd()) # 获取当前的工作目录,即当前python脚本工作的目录 os.chdir('test') #改变当前脚本工作目录,相当于shell下的cd命令 print(os.rename('main.py', 'mainhaha.py')) #给指定文件重命名 print(os.remove("mainhaha.py")) #删除指定文件 os.rmdir('fffff') #删除指定文件夹 os.mkdir('fffff') #创建一个文件夹 os.chdir('c:\\') #切换工作目录 os.listdir() #列出指定目录里的所有文件和文件夹
2、sys 系统相关的功能模块
import sys sys.exit() # 让程序停止掉,与exit类似 print(sys.path) #结果是一个列表,表示查找模块的路径 print(sys.stdin) # 可以像input一样,接收用户输入,接收用户的输入,和input相关 print(sys.stdout) #标准输出,修改sys.stdout可以改变默认输出位置,默认控制台 sys.stderr #修改sys.stderr 可以改变错误输出的默认位置,默认控制台
3、math 数学计算模块
import math print(math.pow(2, 10)) #幂运算 print(math.factorial(6)) # 求 阶乘 print(math.floor(12.98)) # 向下取整 print(math.ceil(15.0001)) #向上取整 print(math.sin(math.pi/6)) #弧度,π = 180° print(math.cos(math.pi / 3)) print(math.tan(math.pi / 2))
4、random 模块用来生成一个随机数
import random print(random.randint(2, 9)) #用来生成【a,b】随机整数,包含a和b print(random.random()) #用来生成[0,1]随机小数,包含0不包含1. print(random.randrange(2, 9)) #用来生成【a,b】随机整数,包含a,不包含b print(random.choice(['刘德华','张学友','陈惠玲'])) #用来在可迭代对象里面随机抽取一个数据 print(random.sample(['刘德华', '张学友', '陈惠玲'],2)) #用来在可迭代对象里面随机取两个数据
5、datetime 日期模块
import datetime as dt # 涉及到四个类 datetime /date/time/timedelta print(dt.datetime.now()) #获取当前的日期时间 print(dt.date(2020, 1, 1)) #创建一个日期 print(dt.time(18, 23, 45)) #创建一个时间 print(dt.datetime.now() + dt.timedelta(3)) #计算三天以后的日期时间
6、time 时间模块
import time print(time.time()) #获取从1970-01-01 00:00:00 UTC到现在时间的秒数(时间戳) print(time.strftime('%Y-%m-%d %H:%M:%S')) #按照指定格式输出时间 print(time.asctime()) #Sat Jan 2 21:51:25 2021 这个要传递元组 print(time.ctime()) # Sat Jan 2 21:51:25 2021 可以传递时间戳 print(time.sleep(10)) #让线程暂停10秒
7、calendar 日历模块
import calendar print(calendar.setfirstweekday(calendar.SUNDAY)) #设置每周起始日期码,周一到周日分别对应0~6 calendar.firstweekday() #返回当前每周起始日期的设置。默认情况下,首次载入calendar模块时返回0,即星期一 c = calendar.calendar(2019) #生成2019年的日历,并且以周日为其实日期码 print(c) #打印2019年日历 print(calendar.isleap(2020)) count = calendar.leapdays(1996,2010) #获取1996年到2010年一共多少个闰年 print(count) print(calendar.month(2019, 3)) # 打印2019年3月的日历
8、hashlib 与 hmac 加密模块
#这两个模块都是用来进行数据加密 #hashlib 模块里主要支持两个算法 md5 和 sha加密 """加密方式: 单向加密md5/sha:只能加密,不能解密。 对称加密, 非对称加密rsa """
import hashlib,hmac # 要加密的内容需要转换成为二进制 x = hashlib.md5() #创建一个hashlib.md5()对象 x.update('abc'.encode('utf8')) #加密 print(len(x.hexdigest())) #用十六进制输出加密后的数据 32位 #sha1加密 sha1 = hashlib.sha1('abc'.encode('utf8')) print(sha1.hexdigest())#40位 #sha2加密 基本够用 sha2 = hashlib.sha224('abc'.encode('utf8')) print(len(sha2.hexdigest()))#56位 #sha3加密 sha3 = hashlib.sha256('abc'.encode('utf8')) print(len(sha3.hexdigest()))#64位 #sha4加密 sha4 = hashlib.sha384('abc'.encode('utf8')) print(len(sha4.hexdigest()))#96位 #sha5加密 sha5 = hashlib.sha512('abc'.encode('utf8')) print(sha5.hexdigest()) #128位 #hmac 加密可以指定秘钥 赶紧上面那个加密就可以了,这个还是需要调用上面的sha h = hmac.new('h'.encode(),'abc'.encode(),hashlib.sha224) result = h.hexdigest() print(result) #获取加密后的结果
9、uuid 模块用来生成一个全局唯一的id
import uuid print(uuid.uuid1()) # 运行一次变化一次的uuid 32个长度,每一个字符有16个选择,16**32,全局唯一id print(uuid.uuid4()) # 运行一次变化一次的uuid,是通过伪随机数得到的uuid,是有一定概率重复的,但是可能性很小,速度快所以常用 print(uuid.uuid3(uuid.NAMESPACE_DNS, 'abc')) # 生成固定不变的uuid print(uuid.uuid5(uuid.NAMESPACE_URL, 'abc')) # 生成固定不变的uuid 结果: 514d244d-4d63-11eb-bdbb-00249b34fe09 # 每次运行随机变动 f2a597c3-bc24-4907-aaf4-2ab458d2b4e6 # 每次运行随机变动 速度快常用 5bd670ce-29c8-3369-a8a1-10ce44c7259e # 每次运行固定不变 68661508-f3c4-55b4-945d-ae2b4dfe5db4 # 每次运行固定不变