模块作为一个库,其中存放的各种各样功能的装备,任何一个大规模的Python都必不可少的就是模块,他对于我们写程序来说是一个及其方便的工具,所谓是必不可少。
a. time.sleep(n)—睡眠时间,睡眠n秒
b. time.time()—时间戳,默认1970到现在所经历的秒数,一般用来计算时间消耗
import time
start = time.time()
time.sleep(2)
stop = time.time()
print('睡眠时间:',(stop-start))
c. time.localtime()—当地时间,结构化时间
print('当地时间:',time.localtime())
e. time.gtime()—UTC世界标准时间,结构化时间
print('国际时间:',time.gmtime())
f. time.mktime()—结构化时间转化为时间戳
print('结构化时间转化为时间戳:',time.mktime(time.localtime()))
g. time.strftime()—结构化时间转化为字符串时间
print('结构化时间转化为字符串时间:',time.strftime('%Y-%m-%d %X',time.localtime()))
h. time.strptime()—字符串时间转化为结构化时间
print('字符串时间转化为结构化时间:',time.strptime('2021-05-14 20:09:00','%Y-%m-%d %X'))
i. time.asctime()—结构化时间转化为默认格式,加不加参数均可
print(time.asctime(time.localtime()))
j. time.ctime()—时间戳转化为默认格式,加不加参数均可
print(time.ctime(time.time()))
k. datetime.datetime.now()—标准化格式时间
import datetime
print(datetime.datetime.now())
a. random.random()—随机产生0-1之间的浮点数
import random
print('随机产生0-1之间的随机数:',random.random())
b. random.randint(n,m)—随机产生n-m之间的整数,n与m可以取到
print('随机产生1-8之间的整数:',random.randint(1,8))
c. random.randrange(n,m)—随机产生n-m之间的整数,n与m取不到
print('随机产生1-8之间的整数:',random.randrange(1,8))
d. random.choice([a,b,c])—随机从中选取一个
print('随机选取一个数:',random.choice([1,2,3]))
e. random.sample([a,b,c],n)—随机从中选取n个
print('随机选取两个数:',random.sample([1,2,3],2))
f. random.uniform(n,m)—随机产生n-m之间的浮点数
print('随机选取两个数:',random.sample([1,2,3],2))
g. random.shuffle(n)—打乱n中的字符排列顺序
n = [1,2,3,4,5,6]
print('打乱之前的顺序:',n)
random.shuffle(n)
print('打乱之后的顺序:',n)
a. sys.path—查看环境配置变量
import sys
print('当前环境变量:',sys.path)
b. sys.path.append(r’路径’)—添加临时环境
sys.path.append(r'd:\python')
print('添加后的环境变量:',sys.path)
c. sys.argv—程序本身路径,以列表形式输出
print('程序本身路径:',sys.argv)
d. sys.exit(n)—退出程序,正常退出exit(0)
e. sys.version—获取python解释程序的版本信息
print('python解释程序的版本信息:',sys.version)
f. sys.platform—返回操作系统平台名称
print('操作系统平台名称:',sys.platform)
g. sys.stdout.write(’*’)—进度条的实现
a. os.getcwd()—获取当前工作目录
import os
print('获取当前工作目录:',os.getcwd())
b. os.chdir(‘文件夹名’)—文件夹名,改变为同级其他文件目录;…改变为上一级目录
os.chdir('venv')
print('改变后的当前工作目录:',os.getcwd())
c. os.curdir—返回当前目录,相当于 ‘.’
os.chdir(os.curdir)
print('当前文件所在文件夹:',os.getcwd())
d. os.pardir—获取当前目录的父亲目录字符串名,相当于 ‘…’
os.chdir(os.pardir)
print('当前文件根目录文件夹名:',os.getcwd())
e. os.makedirs(‘w1/w2’)—递归生成目录文件
os.makedirs('w1/w2')
f. os.removedirs()—若文件夹内容为空,则也递归删除上一层;若文件夹有内容,则只删除目标文件夹(删除目录必须在工作目录下)
os.removedirs('w3')
g. os.mkdir()—生成单级目录
os.mkdir('w3')
h. os.rmdir()—删除单级空目录(不空则无法删除)
os.rmdir('w3')
i. os.listdir()—以列表的形式打印当前目录下的文件名称
print('当前目录下的文件名称:',os.listdir())
j. os.stat(‘文件名’)—查看文件的详细信息
print('文件的详细信息:',os.stat('venv'))
k. os.sep—输出操作系统特定的路径分隔符,win:\,linux:/
print('操作系统特定的路径分隔符:',os.sep)
l. os.linesep—输出当前平台使用的行终止符,win:\r\n,linux:\n
print('当前平台使用的行终止符:',os.linesep)
m. os.pathsep—输出用于分割文件的字符串,win:;,linux: :
print('分割文件的字符串:',os.pathsep)
n. os.name—输出当前平台指示字符串,win:nt,win:posix
print('当前平台指示字符串:',os.name)
o. os.system()—显示命令信息
print('命令信息:',os.system('help'))
p. os.environ—获取系统环境变量
print('系统环境变量:',os.environ)
q. os.path.abspath(‘path’)—返回path规范化的绝对路径
print('返回规范化的绝对路径:',os.path.abspath('模块.py'))
r. os.path.split(‘path’)—分割path目录路径与文件名,并存入元组打印得出
print('分割目录路径与文件名:',os.path.split('模块.py'))
s. os.path.dirname(‘path’)—返回path的目录
print('返回目录:',os.path.dirname('模块.py'))
t. os.path.basename(‘path’)—返回path最后的文件名
print('返回目录最后的文件名:',os.path.basename('模块.py'))
u. os.path.exists(‘path’)—判断path是否存在
print('文件是否存在:',os.path.exists('w1'))
v. os.path.isabs(‘path’)—判断path是否为绝对路径
print('路径是否为绝对路径:',os.path.isabs('模块.py'))
w. os.path.isfile(‘path’)—判断path是否是一个存在的文件
print('文件是否存在:',os.path.isfile('模块.py'))
s. os.path.isdir(‘path’)—判断path是否是一个存在的目录
print('目录是否存在:',os.path.isdir('w1'))
y. os.path.join(a,b)—合并路径(路径拼接),前路径,后路径
z. os.path.getatime(‘path’)—返回path所指向文件/目录的最后存取时间
print('文件/目录的最后存取时间:',os.path.getatime('w1'))
z1. os.path.getmtime(‘path’)—返回path所指向文件/目录的最后修改时间
print('文件/目录的最后存取时间:',os.path.getmtime('w1'))
re.findall()—字符匹配
a. 普通字符
import re
print(re.findall('alex','healexss')) #查询到,输出目标字符串,列表形式输出
print(re.findall('alex','healxss')) #查询不到,输出空列表
print(re.findall('alex','alexalex')) #有几个输出几个
b. 元字符
print(re.findall('a..x','healexss')) #..通配符,除了换行符均可匹配,一个点代表一个字符
print(re.findall('a...x','healexss'))
print(re.findall('^a..x','healexss')) #查看开头是否为目标字符串
print(re.findall('^a..x','alexhealexss'))
print(re.findall('a..x$','healexss')) #查看结尾是否为目标字符串
print(re.findall('a..x$','healexssalex'))
c. 重复符号
print(re.findall('ab*','abcmacda*')) #匹配前面的子表达式零次或多次--->a,ab,abb,abbb...
print(re.findall('ab+','abcmacda*')) #匹配前面的子表达式一次或多次--->ab,abb,abbb...
print(re.findall('ab?','abcmacda*')) #匹配前面的子表达式零次或一次--->a,ab
print(re.findall('a{2}','abcmaacda*')) #{n},n是一个非负整数,匹配前面的子表达式n次--->aa,n个a
print(re.findall('a{1,}','abcmaacda*')) #{n,},n是一个非负整数,匹配前面的子表达式n次或大于n次
print(re.findall('a{1,3}','abcmaacda*')) #{n,m},m和n均为非负整数,其中n<=m,匹配前面的子表达式n次到m次
# {0,}==*,{1,}==+,{0,1}==?,{n}==n次
d. [ ]中无特殊符号(-特例)
print(re.findall('a[b*c]','ab*cmacda*')) #匹配a加[]内任意一个--->ab,a*,ac
print(re.findall('a[a-z]','ab*cmacda*')) #匹配a加[a-z]内,a-z任意一个--->aa,ab,ac...
print(re.findall('a[0-9]','ab*cmacda*')) #匹配a加[0-9]内,a-z任意一个--->a0,a1,a2...
print(re.findall('a[a-z]*','ab*cmacda*')) #后面加上*表示所有
print(re.findall('a[^a-h]','ab*cmacda*')) #后面加上^表示非,除a-h之外均可以
print(re.findall('[a-z]','ab*cmacda*')) #只有[],按照[]内一个一个匹配
e. \让有功能的字符变无功能,让无功能的字符变有功能
# \d--->[0-9] \D--->[^0-9]
# \s--->[\t\n\r\f\v] \S--->[^空白字符]
# \w--->[z-a A-Z 0-9] \W--->[^z-a A-Z 0-9]
# \b--->[0-9] \B--->[^0-9]
# \d--->匹配一个特殊字符边界,如空格,¥,#等
f. 三者输出结果相同,但意义不同
print(re.findall('www.baidu','www.baidu')) # .是通配符
print(re.findall('www\.baidu','www.baidu')) # \.取消功能
print(re.findall('ww\w.baidu','www.baidu')) # \w赋予功能
g. | 或
print(re.findall('ka|b','kamks1b2')) # ka或b
h. 分组
a = re.search('(?P<name>[a-z]+)(?P<age>\d+)','alex36wu21').group('name') #匹配第一个符合字符
print(a)
b = re.match('\d+','56asdf12cd').group() #匹配对象必须在开头,从而不常用
print(b)
print(re.split(' ','I love you')) #根据匹配对分割,这里是空格
print(re.split('ab','abc')) #先分割a('','bc'),再分割b('','','c')
print(re.sub('\d+','A','565scx56a2')) #替换,A替换数字
i. 编译,提前定义好编译规则
com = re.compile('\d+') #编译规则
print(com.findall('1278xasd15564cd'))
j. 迭代器
ret = re.finditer('\d+','sa12a5sac3')
print(next(ret).group()) #--->12
print(next(ret).group()) #--->5
print(next(ret).group()) #--->3
k. 优先级
print(re.findall('www\.(baidu|163)\.com','df www.163.com123')) #存在小括号,小括号内优先级大
print(re.findall('www\.(?:baidu|163)\.com','df www.163.com123')) #?:去除小括号优先级
print(re.findall('www\.baidu|163\.com','df www.163.com123')) #没有括号,以管道符或为分界线
print(re.findall('www\.[baidu|163]\.com','df www.163.com123')) #大括号不存在优先级
a. json.dumps()—将数据转化为json类字符串
b. json.loads()—将json类字符串转化为原来的数据类型
info = {1:'I',2:'Love',3:'You'}
a = json.dumps(info)
print(a)
b = json.loads(a)
print(b)
c. json.dump(a,f)—将数据转化为json类字符串并写入f当中
d. f = json.load(a)—将json类字符串转化为原来的数据类型并从f中读出
import hashlib
obj = hashlib.md5() #调用md5加密方式,还有sha256常用
obj.update('li'.encode('utf-8')) #需加密的字符串
print(obj.hexdigest()) #加密
这几个模块算是比较重要的,平时比较常用,我只说重要的,嘻嘻嘻,有能力的同样可以借助网络去学习其他模块,加油。