Python标准库和常用库

Python标准库和常用库

-常用库

re模块(正则表达式)

import re

re.findall(x,y) x:寻找的字符串 y:从y字符串中寻找
 从整个字符串里面匹配,将所有匹配到的字符以列表形式返回
re.match(x,y) x:寻找的字符串 y:从y字符串中寻找
 从起始位置开始匹配,若没有匹配到则返回None
re.search(x,y) x:寻找的字符串 y:从y字符串中寻找
 从整个字符串里面匹配,匹配第一次出现的字符串

match search 方法中需要用group()来返回已经匹配到的字符串span()来返回已经匹配的字符串的下标值

代表数量的元字符
. 匹配任意一个字符(除\n外)如果要匹配\n需要加上re.findall()里面传参re.S

  • 要匹配的前一个字符出现0次或者无限次
  • 要匹配的前一个字符至少出现1次
    ?要匹配的前一个字符出现1次或者0次
    {n}匹配前一个字符出现n次
    {n,}匹配前一个字符至少出现n次
    {m,n}匹配前一个字符出现m到n次
    表示边界的元字符
    ^匹配字符串开头
    $匹配字符串结尾
    \b匹配一个单词的边界
    \B匹配一个单词的非边界
    A|B 匹配左右任意一个表达式
    ()将括号里的内容提取出来
    贪婪模式.* 找最长的匹配 尽可能多的匹配内容
    非贪婪模式.*?找最短的匹配
    匹配通用字符
    \d 匹配数字
    \D 匹配非数字
    \s 匹配空白
    \S 匹配非空白
    \w 匹配单词字符(a-z, A-Z ,0-9, _)
    \W 匹配非单词字符
    匹配数字英文中文
    匹配一个数字[0-9]
    匹配一个字母[a-z]和[A-Z]
    匹配一个中文[\u4e00-\u9fa5]
    原子表
    [abcde]匹配时原子表中出现的每个原子都可以匹配到
    [^abc]匹配除abc之外的字符

json模块(前后端数据交互)
json.dumps(字典内容) python转json格式
json.loads(json内容) json转python格式
json.dump(内容,fp=f) python转json格式写入文件
json.load(fp=f) 读取成python格式

hashlib模块(字符编码)
加密类型有:md5 sha1 sha256 sha512 sha384
result=hashlib.new(‘加密类型’,加密内容.encode())
result.hexdigest()
result=hashlib.pbkdf2_hmac(‘加密类型’,加密内容,盐,加密次数)
result.digest()

base64模块(url编码)
result=base64.b64encode(内容.encode())
a=base64.b64decode(内容)
result=base64.urlsafe_b64encode(内容.encode())
result.urlsafe_b64decode()

datetime模块(日期时间)

import datetime

格式化输出
%a 缩写工作日
%A 完整的工作日
%b 缩写月
%B 全月
%c 日期和时间表示法适用于地区
%d 以十进制数表示的月份日(01 - 31)
%H 小时24小时格式(00 - 23)
%I 12小时制(01 - 12小时)
%j 以十进制数表示的年份(001 - 366)
%m 月为十进制数(01 - 12)
%M 分钟为十进制数(00 - 59)
%p 当前语言环境的上午/下午指标12小时时钟
%S 二是小数(00 - 59)
%U 一周为十进制数,周日为一周的第一天(00 - 51)
%w 工作日为十进制数(0 - 6;周日为0)
%W 一周为十进制数,周一为一周的第一天(00 - 51)
%x 当前区域设置的日期表示。
%X 当前语言环境的时间表示
%y 没有世纪的年份,如十进制数(00 - 99)
%Y 年与世纪,作为十进制数
%z,%Z 时区名称或缩写;如果时区未知,则没有字符

自定义日期时间
a=datetime.date(年,月,日) 打印显示2019-3-5
获取年a.year
获取月a.month
获取日a.day
a=datetime.time(小时,分,秒,毫秒)
获取小时a.hour
获取分钟a.minute
获取秒钟a.second
获取毫秒a.microsecond
a=datetime.datetime(年,月,日,小时,分,秒,毫秒)
获取年a.year
获取月a.month
获取日a.day
获取小时a.hour
获取分钟a.minute
获取秒钟a.second
获取毫秒a.microsecond
获取星期a.isoweekday()
获取年周星期a.isocalender()
获取年a.isocalender()[0]
获取周数a.isocalender()[1]
获取星期a.isocalender()[2]
获取当前日期时间datetime.datetime.now()
获取格林威治时间datetime.date.utcnow()
时间日期转化为时间戳 时间日期.timestamp()
时间戳转化为时间日期 datetime.datetime.fromtimestamp(时间戳)
日期转字符串 时间日期.strptime(‘%y-%m-%d %H-%M-%S’)
字符串转日期 datetime.strptime(str,’字符串的时间格式’)
设置时间间隔
t_interval=datetime.timedelta(weeks=0,days=0,hours=0,minutes=0,seconds=0,microseconds=0,milliseconds=0)
时间类型可以直接相减

logging模块(监控日志)
格式化输出
%(name)s Logger的名字
%(levelname)s 文本形式的日志级别
%(message)s 用户输出的消息
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(levelno)s 数字形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID
Loging中的级别:NOTSET<DEBUG<INFO<WARNING<ERROR<CRITICAL
#实例化
logger=logging.getLogger(‘dyv’)
logger.setLevel(logging.DEBUG)
#控制台输出
sh=logging.StreamHandler()
sh.setLevel(logging.WARNING)
#写入文件中
fh=logging.FileHandler(‘logginfile.log’,encoding=‘utf8’)
fh.setLevel(logging.WARNING)
#格式化输出
formatter=logging.Formatter(
‘级别:%(levelname)s’
‘日志名:%(name)s’
‘内容:%(message)s’
‘时间:%(asctime)s’
)
sh.setFormatter(formatter)
fh.setFormatter(formatter)
#激活
logger.addHandler(sh)
logger.addHandler(fh)
logger.warning(‘error’)

threading模块(线程管理)

from threading import Thread

实例化
对象=Thread(target=函数名)
设置线程名
.对象.setName(‘线程名’)
获取线程名
.对象.getName()
开启线程
.对象.start()
线程守护
主线程结束它的子线程就结束
.对象.Daemon(True)

线程阻塞
当子线程结束后主线程才结束
.对象.join()

线程锁
解决cpu资源竞争问题
from threading import Lock
实例化线程锁
lock=Lock()
上锁
lock.acquire()
解锁
lock.release()
Thread类

class Mythread(Thread):
 def __init__(self,th_name):
 super().__init__()
 self.th_name=th_name
  def run(self):
  print("hello%s"%self.th_name)
  time.sleep(2)
  print("hi%s"%self.th_name)

线程池
...

os模块(文件目录处理)

import os

os.remove(file_dress) 删除文件
os.rename(old,new) 文件重命名
os.getcwd() 获得绝对路径
os.removedirs() 移除多级目录
os.rmdir() 移除空目录
os.stat() 文件状态
os.mkdir() 创建目录
os.mknod() 创建一个文本文件
os.exit() 终止当前进程
os.listdir() 列出目录下的全部目录和文件
os.system(“m”) m为操作系统命令
os.path.isfile() 是否是文件
os.path.isdir() 是否是目录
os.path.isabs() 是否是绝对路径
os.path.islink() 是否是快捷方式
os.path.exists() 文件是否存在
os.path.basename() 根文件名
os.path.dirname() 文件的上级目录地址
os.path.split() 路径分割
os.path.splitext() 分割文件后缀名
os.path.getsize() 获取文件字节大小
os.path.join(m,n) 文件目录拼接

shutil模块(文件目录处理)

import shutil

shutil.copyfile(oldfile,newfile) 文件复制
shutil.copytree(oldfile,newfile) 文件目录复制
shutil.copy(oldfile,newfile/newtree)文件/文件目录复制
shutil.move(oldfile,newfile) 文件移动
shutil.rmtree() 空目录、有内容的目录都可以删
shutil.chdir() 文件目录改变

猜你喜欢

转载自blog.csdn.net/qq_44647926/article/details/89949916
今日推荐