常用模块(未完待续)
目录
一、time时间模块
1.时间戳
import time
# 作用:从1970年到现在经过的秒数,用于时间间隔的计算
time.time()
# 具体案例
start = time.time()
print('猜猜我运行了几秒')
time.sleep(1) # 作用:让程序在此处暂停1秒
stop = time.time()
print('运行时间为:{}'.format(stop - start))
2.按照某种格式显示的时间
# 作用:用于展示时间
print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
print(time.strftime('%Y-%m-%d %X'))
# 运行结果
2021-04-07 09:37:24 AM
2021-04-07 09:37:24
3.结构化的时间
# 作用:将时间结构化,赋予不同的变量名,用于单独获得时间的某一部分
obj = time.localtime()
print(obj)
print(obj.tm_year)
# 运行结果
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=7, tm_hour=19, tm_min=6, tm_sec=37, tm_wday=1, tm_yday=124, tm_isdst=0)
2021
4.datetime模块
import datetime
# 作用:将时间用作运算
print(datetime.datetime.now())
# 算出三天之后的时间
print(datetime.datetime.now() + datetime.timedelta(days=3))
# 运行结果
2021-04-07 11:17:07.621394
2021-04-10 11:17:07.621394
二、random随机模块
import random
print(random.random()) # 大于0且小于1之间的小数
print(random.randint(1,100)) # 随机取一个1到100之间的整数,包括1和100
print(random.randrange(1,10)) # 顾头不顾尾,取一个1到9之间的整数
print(random.choice([1,'23',[4,5]])) # 从列表中随机选一个
print(random.sample([1,'23',[4,5]],2)) # 选列表元素任意2个组合,尾部的数字是几,就选几个组合
print(random.uniform(3,5)) # 大于3小于5的小数,如3.927109612082716
item=[1,3,5,7,9]
random.shuffle(item) # 打乱item的顺序,相当于"洗牌"
print(item)
1.应用案例
# 编写4位随机验证码
def make_code(size=4):
res = ''
for i in range(size):
num = str(random.randint(0, 9))
alpha = chr(random.randint(65, 90))
res += random.choice([num, alpha])
return res
print(make_code())
三、序列化与反序列化
序列化就是把内存的数据类型转换成一个特定的格式内容,该格式的内容可以用于存储或者传输给其他平台使用,而反序列化就是把特定格式再转回成内存的数据类型
1、json模块
json就是一种序列化格式,可以把对象序列化成字符串类型,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。
import json
dic={'name':'alvin','age':23,'sex':'male'}
print(type(dic)) # <class 'dict'>,dic是一个字典类型
j=json.dumps(dic) # dumps将dic序列化,然后赋值给j
print(type(j)) # <class 'str'>,变成字符串类型了
c = json.loads(j) # loads是反序列化,将上面的j又反序列化成原本的类型,赋值给了c
print(type(c)) # <class 'dict'>,c又变成字典类型了
将一个字典序列化成json格式,保存在文件里,操作如下
import json
user_dic = {
'name': 'poco',
'sex': 'male',
'age': '18'
}
# 序列化
with open('poco.json', 'wt', encoding='utf-8') as f1:
json.dump(user_dic, f1) # 第一个参数是要序列化的内容,第二个参数是打开的文件句柄
# 反序列化
with open('poco.json', 'rt', encoding='utf-8') as f1:
json_res = f1.read()
print(json.loads(json_res))
四、re模块正则表达式
正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中,并通过 re 模块实现。正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行。
# 一对一的匹配
# 'hello'.replace(old,new)
# 'hello'.find('pattern')
# 正则匹配
import re
# \w与\W
print(re.findall('\w','hello egon 123'))
# ['h', 'e', 'l', 'l', 'o', 'e', 'g', 'o', 'n', '1', '2', '3']
print(re.findall('\W','hello egon 123'))
# [' ', ' ']
# \s与\S
print(re.findall('\s','hello egon 123'))
# [' ', ' ', ' ', ' ']
print(re.findall('\S','hello egon 123'))
# ['h', 'e', 'l', 'l', 'o', 'e', 'g', 'o', 'n', '1', '2', '3']
#\n \t都是空,都可以被\s匹配
print(re.findall('\s','hello \n egon \t 123'))
# [' ', '\n', ' ', ' ', '\t', ' ']
#\n与\t
print(re.findall(r'\n','hello egon \n123')) # ['\n']
print(re.findall(r'\t','hello egon\t123')) # ['\n']
#\d与\D
print(re.findall('\d','hello egon 123')) # ['1', '2', '3']
print(re.findall('\D','hello egon 123'))
# ['h', 'e', 'l', 'l', 'o', ' ', 'e', 'g', 'o', 'n', ' ']
#\A与\Z
print(re.findall('\Ahe','hello egon 123')) # ['he'],\A==>^
print(re.findall('123\Z','hello egon 123')) # ['he'],\Z==>$
五、logging日志模块
六、OS系统模块
os模块是与操作系统交互的一个接口,可以处理文件和目录这些我们日常手动需要做的操作
os.getcwd() # 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") # 改变当前脚本工作目录;相当于shell下cd
os.curdir # 返回当前目录: ('.')
os.pardir # 获取当前目录的父目录字符串名:('..')
os.makedirs('文件夹1/文件夹1-1') # 可生成多层递归目录
os.removedirs('文件夹1\文件夹1-1') # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') # 生产一个叫dirname的目录
os.rmdir('dirname') # 删除名为dirname的目录,若目录不为空则报错
os.listdir('dirname') # 以列表类型显示dirname目录下所有文件和子目录,包括隐藏文件
os.remove('文件1.py') # 删除一个文件
os.rename("dirname","newname") # 重命名文件/目录
os.stat('newname') # 获取文件/目录信息
os.sep # 输出操作系统特定的路径分隔符,Windows为\
os.linesep # 输出当前平台使用的行终止符,win下为\t\n
os.pathsep # 输出用于分割文件路径的字符串,win下为;
os.name # 输出字符串指示当前使用平台,win为nt
os.system("tasklist") # 运行shell命令,直接显示
os.environ # 获取系统环境变量
os.path.abspath("os模块.py") # 补全该文件或目录的绝对路径
os.path.split(r"D:\py-wh\练习\os模块.py") # 将path分割成目录和文件名,然后以元组返回
os.path.dirname(r"D:\py-wh\练习\os模块.py") # 返回path的目录。其实就是os.path.split("xxx")的第一个元素
os.path.basename(r"D:\py-wh\练习\os模块.py") # 返回path最后的文件名。即os.path.split("xxx")的第二个元素,如果最后没有文件,那么就会返回空值。
os.path.exists(r"D:\py-wh\练习\假装有文件.py") # 判断path是否存在,返回的结果是True或False
os.path.isabs(r"D:\py-wh\练习") # 如果path是绝对路径,返回True,不是则返回False
os.path.isfile("os模块.py") # 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(r"D:\py-wh") # 如果path是一个存在的目录,则返回True。否则返回False
os.path.join("D:\\",'a','b','c.txt') # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime("a.txt") # 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime("a.txt") # 返回path所指向的文件或者目录的最后修改时间
os.path.getsize("a.txt") # 返回path的大小,字节单位
os.path.normcase(r'c:/windows/system32/') # 针对Windows系统的操作,可以将路径中的字符全变成小写,并将斜杠/变成反斜杠\
os.path.normpath(r'D:\py-wh\练习\..\..') # \..代表返回上一级目录,这里出现两个,代表返回上一级的上一级,也就是"D:\
1.OS路径处理
如何灵活的返回 上一级的上一级路径
print(__file__) # __file__是一个可以快速获取当前文件的绝对路径的内置变量
# 第一种方式:用dirname返回目录的功能实现
print(os.path.dirname(os.path.dirname(__file__)))
# 第二种方式
print(os.path.normpath(os.path.join(__file__,"..",'..')))
七、sys模块
sys.argv # 命令行参数List,第一个元素是程序本身路径
sys.exit(n) # 退出程序,正常退出时exit(0)
sys.version # 获取Python解释程序的版本信息
sys.maxint # 最大的Int值
sys.path # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform # 返回操作系统平台名称

浙公网安备 33010602011771号