视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python中一些常用模块的介绍
2020-11-27 14:14:08 责编:小采
文档
 模块本质就是一个.py文件,在安装目录下的lib文件夹下可以看到

模块分为三个部分:内置模块(存在于解释器中),第三方模块(lib文件夹下),自定义模块(自己定义的)

1.time模块

import time#返回当前时间的时间戳print(time.time())#1498027773.1063557#以时间戳为参数,返回结构化的时间元组,参数默认为当前时间print(time.localtime(1912412470))#time.struct_time(tm_year=2030, tm_mon=8, tm_mday=8, tm_hour=17, tm_min=41, tm_sec=10, tm_wday=3, tm_yday=220, tm_isdst=0)#以时间戳为参数,返回结构化的格林尼治时间,默认参数为当前时间print(time.gmtime()) #time.struct_time(tm_year=2017, tm_mon=6, tm_mday=21, tm_hour=6, tm_min=49, tm_sec=2, tm_wday=2, tm_yday=172, tm_isdst=0)#结构化时间转化成字符串时间print(time.strftime('%Y:%m:%d-%X',time.localtime())) #2017:06:21-14:48:50#字符串时间转化为格式化时间print(time.strptime('1993-10-15','%Y-%m-%d')) #time.struct_time(tm_year=1993, tm_mon=10, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=288, tm_isdst=-1)#结构化时间转换成时间戳print(time.mktime(time.localtime()))#1498027859.0print(time.asctime()) #Wed Jun 21 14:53:11 2017print(time.ctime()) #Wed Jun 21 14:53:11 2017#线程推迟指定时间运行,参数为指定的秒数time.sleep(5)

几种时间形式的转换:

2.random模块

import randomprint(random.random())#随机返回一个(0,1)之间的浮点数 0.40165771797504246print(random.randint(1,3)) #随机返回一个指定范围[1,3]的int类型 3print(random.randrange(1,3)) #随机返回一个指定范围[1,3)的int类型 1print(random.choice([12,21,23,34,'a','b']))#随机返回一个指定列表中的元素 12print(random.sample([12,21,23,34,'a','b'],3))#随机返回指定个数的指定列表中的元素 ['a', 21, 'b']print(random.uniform(1,3))#随机返回一个(1,3)之间的浮点数 2.2162483038520144l=[1,2,3,4,5,6]
random.shuffle(l) #把指定列表的顺序打乱print(l) #[1, 3, 6, 2, 4, 5]

练习

#练习,随机生成一个5位的验证码,包括数字,大小写字母import random
res=''for i in range(5):
 num=random.randint(0,9)
 alpA=chr(random.randint(65,90))
 alpa=chr(random.randint(97,122))
 s=random.choice([str(num),alpA,alpa])
 res=res+sprint(res)

3.os模块

 1 import os 2 3 #获取当前工作目录 4 print(os.getcwd()) #C:untitled621day12 5 6 #改变当前工作目录,相当于shell中的cd 7 os.chdir(file_path) 8 9 #生成多层递归目录10 os.makedirs('dirname1/dirname2')11 12 #递归删除空目录13 os.removedirs(path)14 15 #生成单级目录16 os.mkdir('dirname')17 18 #删除单级空目录,目录不为空则不能删除19 os.rmdir(path)20 21 #列出指定目录下的所有文件和子目录,包括隐藏文件,以列表方式打印22 print(os.listdir(r'C:untitled612Python第五天')) #['0612作业.py', 'a.txt', '作业题目', '字符编码.py', '文件操作.py']23 24 #删除一个文件25 os.remove()26 27 #重命名文件/目录28 os.rename('oldname','newname')29 30 #获取文件/目录信息31 os.stat(path)32 print(os.stat(r'C:untitled612Python第五天')) #os.stat_result(st_mode=165, st_ino=2814749767244350, st_dev=35046703, st_nlink=1, st_uid=0, st_gid=0, st_size=4096, st_atime=149735, st_mtime=149735, st_ctime=1497227714)33 34 #返回文件目录,其实就是os.path.split(path)的第一个元素35 os.path.dirname(path)36 37 #返回文件的文件名,其实就是os.path.split(path)的第二个元素38 os.path.basename(path)#如果path以/或结尾,则会返回空值39 40 #如果文件存在,则返回True,否则返回False41 os.path.exists(path)42 43 #如果path是绝对路径,则返回True44 os.path.isabs(path)45 46 #将多个路径组合后返回,第一个绝对路径之前的参数将会被忽略47 os.path.join(path,paths)48 49 #返回path所指向的文件或目录的最后访问时间50 os.path.getatimme(path)51 52 #返回path所指向的文件或目录的最后修改时间53 os.path.getmtime(path)54 55 #返回path的大小56 os.path.getsize(path)

4.hashlib

hashlib模块提供了常见的摘要算法,如MD5,SHA1等,在Python3中,hash直接代替了MD5和SHA

摘要算法是通过一个函数,把任意长度的数据转成一个长度固定的数据串。

1.摘要算法是不可逆的,不能由数据串反推得到元数据

2.两个数据,即使只有1bit的区别,得到的摘要也是没有任何关系的

3.无论元数据有多大,得到的摘要都是固定长度的

4.当元数据很大时,需要一行一行去读,然后一行一行的校验,最后一个.hexdigest()能把之前所有的校验结果得到一个摘要

MD5速度很快,也很常用,生成结果是固定的128bit的通常由一个32位的16进制字符串表示。

import hashlib

md5=hashlib.md5()
md5.update('aasg'.encode('utf-8'))#434c591c9c5a04e44ec8dbafe81058e7md5.update('adasdg'.encode('utf-8'))#d20a55b2194493fdeb66e2cd358dab15md5.update('aasgadasdg'.encode('utf8'))#d20a55b2194493fdeb66e2cd358dab15print(md5.hexdigest())

未完待续。。

下载本文
显示全文
专题