目录
第十章 内置模块
1.math模块
2.random模块
3.os模块和os.path模块
4.sys模块
5.UUID模块
6.时间日期模块
7.加密模块hashlib:接受传入内容,计算后得到hash值
第十章 内置模块
1.math模块
(1)查看方法:
import math
print(dir(math))
(2)常用方法:
2.random模块
(1)查看:print(dir(random))
(2)例:seed()方法改变随机数的生成器种子,可以在调用时使用
import random
random.seed()
print('默认:',random.random())
print('默认:',random.random())
random.seed(10)
print('使用10作为种子数:',random.random())
print('使用10作为种子数:',random.random())
random.seed('hello',2)
print('字符串',random.random())
(3)random(a,b):返回一个随机整数N,满足:a<=N<=b
(4)random.sample(range(0,20),10):返回范围内的指定个数的随机列表
3.os模块和os.path模块
- 作用:用于python整理文件及目录,os.path是其子模块
- 目录也称为文件夹,用于分层保存管理文件
- os模块与操作系统有关,系统不同,返回结果不同
import os
print(os.name)
# nt nt为windows系统,linux与mac为posix
(1)路径:定位一个文件或目录的字符称为路径
- 绝对路径:当前目录开始访问
- 相对路径:文件的实际路径,一般从盘符号或根目录(\)开始访问
例:显示相对和绝对路径
import os
print(os.getcwd()) # 获取当前的工作目录
print(os.path.abspath('sss46.py')) # 获取某文件的绝对路径
(2)判断目录是否存在
格式:os.path.exsts(path)
- path:判断文件的路径,推荐绝对路径
- 文件存在返回True,不存在返回False
import os
print(os.path.exists('c:\demo')) # 判断目录 False
print(os.path.exists(r'd:\pythontest')) # 判断文件 True
(3)目录的创建
- 创建一级目录:os.mkdir(path)
PS:一般用于创建指定路径的最后一级目录,上级目录不存在则抛出异常,被创建目录已存在也会抛出异常
例:创建一个demo目录
import os
os.mkdir(r'd:\demo')
PS:上例再次执行会报错,由于目录已存在会抛出异常,所以一般会和判断目录是否存在的函数一同使用,应改为:
import os
path = 'c:\\demo'
if not os.path.exists(path):
os.mkdir(path)
else:
print('目录已存在')
- 创建多级目录(递归目录):os.makedirs(path)
import os
os.makedirs(r'd:\t1\t2\t3\t4')
例:批量创建24个递归目录
import os
os.mkdir('c:\\demo')
for i in range(1,25):
if not os.path.exists('c:\\demo\\第{}次课'.format(i)):
os.mkdir('c:\\demo\\第{}次课'.format(i))
(4)目录的删除
格式:os.rmdir(path)
PS:只有删除被删除的目录为空时,才可以被删除
例:
import os
for i in range(1,25):
os.rmdir(r'd:\de\第{}次课'.format(i))
- 可以用shutil.rmtree()函数删除不为空的目录
附:删除文件:os.remove(path)
(5)文件或目录的重命名
格式:os.rename(’src’,’dst’)
- src:制定需要重命名的文件或目录
- dst:新名称
import os
os.mkdir('c:\\demo')
os.rename('c:\\demo','c:\\demo1')
PS:重命名的目录或文件不存在会抛出异常,一般需要和判断目录是否存在一同使用
(6)获取文件信息
- 获取文件的访问时间,修改时间,大小等信息
- 格式:os.stat(path)
import os
print(os.stat(r'd:\pythontest\sss46.py'))
(7)常见的os模块方法汇总
(8)os.path模块常用方法:
4.sys模块
(1)作用:用于和python运行时设置资源和配置,与当前程序交互使用
(2)常见方法:
(3)示例:
import sys
a = 2
if a <= 2:
sys.exit(8) # 退出python的程序执行
print(a)
import sys
print(sys.version)
# 3.9.6 (tags/v3.9.6:db3ff76, Jun 28 2021, 15:26:21) [MSC v.1929 64 bit (AMD64)]
import sys
aa = sys.stdin.readline() # sys.stdin.readline()比input()多接受一个\n
bb = input('请输入:')
print(len(aa))
print(len(bb))
# china
# 请输入:china
# 6---多了个\n(回车)
# 5
5.UUID模块
(1)概念:通用唯一标识符,对于硬件保证其在空间和时间上唯一,一般为32B(16进制表示)
(2)python提供UUID1、3、4、5个版本的UUID
(3)示例:
import uuid
name = 'test_name'
namepace = uuid.NAMESPACE_DNS
a = uuid.uuid1() # 基于时间戳
print(a, type(a))
b = uuid.uuid3(namepace, name) # 基于MD5的散列值
print(b, type(b))
c = uuid.uuid4() # 基于随机数
print(c,type(c))
d = uuid.uuid5(namepace,name) # 基于名称的SHA-1散列值
print(d,type(d))
# a003c11f-601a-11ed-955e-005056c00008 <class 'uuid.UUID'>
# 7e9fc176-3b19-394a-9530-83391161f8e9 <class 'uuid.UUID'>
# 2eaeb226-9737-4849-9768-242046b0e197 <class 'uuid.UUID'>
# ad85ae8c-f638-56e0-b9fc-5d7a58009f62 <class 'uuid.UUID'>
6.时间日期模块
(1)time模块:提供格式化时间,一般用于爬虫
import time
t = time.time()
print('当前时间戳为:', t)
ltime = time.localtime()
print('本地时间为:',ltime) # 元组显示格式
# 格式化时间
print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
# 2022-11-09 18:46:01
print(time.strftime('%a %b %d %H:%M:%S %Y',time.localtime()))
# Wed Nov 09 18:46:01 2022
(2)datatime模块:处理时间
import datetime as dt
x = dt.date(2022,11,9) # yyyy-mm-dd
y = dt.time(6,49,55,10)
z = dt.datetime(2022,11,9,6,50,2)
a = dt.timedelta(3,2,1,6)
print(x,y,z,a,sep='\n')
# 2022-11-09
# 06:49:55.000010
# 2022-11-09 06:50:02
# 3 days, 0:00:02.006001
(3)calendar模块:日历模块
- 常用方法
import calendar
print(calendar.calendar(2022)) # 全年日历
print(calendar.month(2022, 12)) # 指定某年某月日历
print(calendar.isleap(2022)) # 返回某年是否是闰年
print(calendar.weekday(2022,11,9)+1) # 返回某年某月某日是星期几
7.加密模块hashlib:接受传入内容,计算后得到hash值
import hashlib
obj = hashlib.md5() # 创建一个hsah对象
obj.update('hello world'.encode('UTF-8')) # 返回hash值
t = obj.hexdigest() # 返回加密串
print(t) # 5eb63bbbe01eeed093cb22bb8f5acdc3