day 15常用模块介绍

day 15常用模块介绍

1.常用模块介绍

常用标准库

1)数学模块

math(普通数学模块)、cmath(复数的数学模块)

2)随机模块

random.randint(m, n) - 产生[m, n]的随机整数
random.random() - 产生[0, 1)的随机数
random.shuffle(列表) - 随机打乱列表中的元素
random.choice(列表) - 从列表中随机获取一个元素
random.choices(列表, k=N) - 从列表中随机获取N个元素

3)os模块

os.chdir(路径) - 将指定路径对应的目录修改成当前目录
(默认情况下当前目录是当前py文件所在的目录)
os.getcwd() - 获取当前模块的路径到当前目录
os.path.basename(路径) — 获取路径下的文件名
创建文件/文件夹、删除文件/文件夹、判断是否是文件/文件夹、判断文件/文件夹是否存在
os.remove(path) - 删除指定路径的文件,如果文件不存在或者路径为一个目录则报错
os.removedirs(path) - 以递归的方式删除路径指定的目录(如果子文件夹和父文件夹都为空则从子文件夹一级一级向上删除),如果该目录不是空目录或者里面有文件或者目录不存在则报错
os.mkdir(path) - 在指定的路径创建一个目录,目录名包含在path中,如果该目录存在则报错
os.makedir(path) - 在指定的路径按照输入路径逐级创建目录,如果最后一个子目录已存在就报错
os.path.isfile(path) - 判断路径是否为文件
os.path.isdir(path) - 判断路径是否为目录
os.path.exists(path) - 判断该路径下的文件或者文件夹是否存在
os.listdir(path) - 返回指定的文件夹包含的文件或文件夹的名字的列表,这个列表以字母顺序

os.mknod(path) - 创建一个文件的操作,在windous中不支持

4)json模块
5)re模块 - 正则表达式相关操作
6)sys模块
exit() - 退出程序(提前结束线程)
7)turtle - 画图模块
8)csv - csv文件操作
9)smtplib - 邮件的发送
10)time 和 datetime
11)hashlib

# 向小取整
print(int(-2.9), int(2.9))  # -2 2
print(math.floor(-2.9))     # -3

print(random.random()*100)  # [1, 100)的随机小数
nums = [1, 2, 2, 3, 4, 5]
random.shuffle(nums)
print(nums)     # [2, 3, 1, 4, 2, 5]
print(random.choices(nums, k=3))    # [3, 4, 2]
print(os.getcwd() )     # D:\工程\01语言基础\day-15常用模块介绍
print(os.path.basename(r'D:\工程\01语言基础\day-15常用模块介绍'))

# 退出程序(提前结束线程)
# exit()
# print('=========')

# turtle.setup(600, 500)
# os.remove("aa.txt")
# os.mkdir(r'D:\工程\01语言基础\day-15常用模块介绍\name')
print(os.listdir(r'D:\工程\01语言基础\day-15常用模块介绍'))   # ['01-常用模块介绍.py', '03-time模块的使用.py', '04-hushlib.py', '05-hash.py', 'excel.txt', 'name']
# os.removedirs(r'D:\工程\01语言基础\day-15常用模块介绍\name')
# os.makedirs(r'D:\工程\01语言基础\day-15常用模块介绍\name\yes\are.txt')
# print(os.path.exists(r'D:\工程\01语言基础\day-15常用模块介绍\excel.txt'))       # True
# os.mknod(r'D:\工程\01语言基础\day-15常用模块介绍\excl.txt', )     # 创建文件操作windous上不支持

2. time模块的使用

什么是时间戳

时间戳就是以秒为单位表示的到格林威治时间1970年1月1日0时0分0秒的时间差
保存时间的时候保存时间戳要比直接保存时间信息更加节约内存
对时间戳进行加密比字符串时间加密要方便

# 1.time()  -   获取当前时间(返回当前时间的时间戳)
t1 = time.time()
print(t1)   # 1603093220.3617182

# 2.time.localtime()
# time.localtime()  -   获取当前的本地时间,返回struct时间
t2 = time.localtime()   # time.struct_time(tm_year=2020, tm_mon=10, tm_mday=19, tm_hour=16, tm_min=4, tm_sec=37, tm_wday=0, tm_yday=293, tm_isdst=0)
print(t2)

# time.localtime(时间戳)   -   获取指定时间戳对应的本地时间,返回struct时间
t3 = time.localtime(0)
print(t3)           # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

# 3.time.strftime(时间格式字符串, 结构时间)    -   将结构体转换成指定格式的字符串时间
# '2020/10/19'
print(time.strftime('%Y/%m/%d', t2))
# xxxx-xx-xx xx:xx:xx
print(time.strftime('%Y-%m-%d %H:%M:%S', t2))   # 2020-10-19 16:20:20

# 4.time.strtime(字符串, 时间格式字符串)  -   将字符串时间转换成结构体时间
s2 = '2000-10-29'
t5 = time.strptime(s2, '%Y-%m-%d')
print(t5)       # time.struct_time(tm_year=2000, tm_mon=10, tm_mday=29, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=303, tm_isdst=-1)

3. hushlib的使用

hashlib模块主要提供hash加密相关的算法来对数据进行加密处理

hash加密(hash摘要)的特点:
a.加密结果不可逆(不能通过密文/摘要去获取到原文)
b.同一个数据通过相同的算法加密之后的结果是一样的
c.不同的数据通过相同的算法加密之后的长度相同

hash摘要的应用场景:
a.密码保存
b.数据完整性验证

# 1.根据算法创建hash对象(md5和shaxxx)
# hashlib.算法名()
hash = hashlib.md5()

# 2.添加需要生成摘要/密文的数据
# hash对象.update(数据的二进制)
hash.update('123456'.encode(encoding='utf-8'))

# 3.生成摘要
dig = hash.hexdigest()
print(dig)      # e10adc3949ba59abbe56e057f20f883e
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值