欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python 常用的标准库

程序员文章站 2023-01-01 21:15:49
glob模块 提供了一个函数,用于匹配符合要求的文件: re模块 字符串正则匹配 datetime模块 日期时间 格式化输出也可以这样用: 数据压缩 支持数据打包、压缩的模块:zlib,gzip,bz2,zipfile,以及 tarfile。 压缩数据: 压缩文件: 解压文件: ......

 

glob模块   提供了一个函数,用于匹配符合要求的文件:

import glob
list=glob.glob("*.py")  #匹配当前目录下的所有匹配的文件名(包括后缀),以字符串列表的形式返回
print(list)  #['test.py', 'test2.py']

 

 

 

re模块   字符串正则匹配

import re
list=re.findall(r"\bh","hi hello his")  #获取所有符合要求的匹配,以字符串列表的形式返回
print(list)  #['h', 'h', 'h']

str=re.sub(r"\bh","h","hi hello his")  #用第二个字符串替换第一个正则表达式匹配到的所有子串。字符串不可变,以副本形式返回。
print(str)  #hi hello his

 

 

 

datetime模块   日期时间

from datetime import date
now=date.today()
print(now)  #2019-08-07,这是默认的格式

print(now.strftime("%y.%m.%d"))     #2019.08.07  格式化时间日期,返回的是时间日期对象对应的字符串

# print(now.strftime("%y年%m月%d日"))   #这句代码会报错,年月日时分秒是此模块的关键字词,不能直接写

print(now.strftime('%y{}%m{}%d{}').format("年","月","日"))  #2019年08月07日,将返回的字符串格式化

birthday=date(2000,1,1)  #构造一个date对象,参数:年、月、日
print(birthday)   #2000-01-01

age=now-birthday
print(age)  #7158 days, 0:00:00
print(age.days)  #7158

 

 

 

格式化输出也可以这样用:

str="我是{},今年{}岁".format("张三",12)
print(str)  #我是张三,今年12岁

str="我是{name},今年{age}岁".format(name="张三",age=12)   #指定名称,根据名称来赋值
print(str)  #我是张三,今年12岁

 

 

 

数据压缩

支持数据打包、压缩的模块:zlib,gzip,bz2,zipfile,以及 tarfile。

 

压缩数据:

import zlib
data1=bytes("爱我中华爱我中华爱我中华爱我中华爱我中华","utf-8")
print(len(data1))  #60

data2=zlib.compress(data1)  #压缩数据,参数要是字节。参数不变,返回的是副本
print(len(data2))  #24

data3=zlib.decompress(data2)  #解压,参数不变,返回副本
print(len(data3))  #60
print(len(data2))  #24

 

 

压缩文件:

import zipfile
f = zipfile.zipfile('1.zip', 'w',zipfile.zip_deflated)
"""
调用zipfile模块的zipfile类的构造函数,创建一个压缩文件对象
3个参数:压缩文件的文件名、读写权限、压缩类型
压缩要有写的权限,解压要有读的权限
压缩类型有2个常量值:zip_store(默认值,不压缩数据,大小不变),zip_deflated(要压缩数据,文件尺寸变小)
"""

f.write("1.txt")  #压缩文件1.txt
f.write("1.mp3")  #压缩文件1.mp3
f.write('1.mp4"')  #压缩文件1.mp4
#就是说1.zip中有3个文件

f.close()

 


解压文件:

import zipfile
f=zipfile.zipfile('1.zip')  #创建压缩文件对象,后2个参数均使用默认值(读+不压缩数据)
f.extractall("1")  #解压到文件夹1
f.close()


这些模块都具有多个方法,此处只是简略介绍下。