Python 常用标准库模块 2

  • 公众号:人生只不过是一场投资
  • 温馨提示:每个笔记文档都会绑定一个笔记资源;手机端可能看不到,网页端请自行下载。

11. itertools 模块

itertools 模块提供了高效的迭代器函数。常用场景:

  • 迭代器操作
  • 组合和排列
知识点函数/方法参数说明
无限迭代器itertools.count(start, step)start:起始值,step:步长
循环迭代器itertools.cycle(iterable)iterable:可迭代对象
重复迭代器itertools.repeat(object, times)object:要重复的对象,times:重复次数
笛卡尔积itertools.product(*iterables, repeat=1)*iterables:可迭代对象列表,repeat:重复次数
排列itertools.permutations(iterable, r)iterable:可迭代对象,r:排列长度
组合itertools.combinations(iterable, r)iterable:可迭代对象,r:组合长度
  • 更多迭代器函数:提供更多迭代器操作功能。
知识点函数/方法参数说明
累积和itertools.accumulate(iterable, func)iterable:可迭代对象,func:累积函数
压缩itertools.compress(data, selectors)data:数据序列,selectors:选择器序列
过滤itertools.filterfalse(predicate, iterable)predicate:过滤条件函数,iterable:可迭代对象

12. functools 模块

functools 模块提供了高阶函数和操作可调用对象的工具。常用场景:

  • 函数操作
  • 缓存和记忆化
知识点函数/方法参数说明
部分函数应用functools.partial(func, *args, **keywords)func:要部分应用的函数,*args:位置参数,**keywords:关键字参数
缓存函数结果functools.lru_cache(maxsize=128, typed=False)maxsize:缓存的最大条目数,typed:是否区分参数类型
函数组合functools.reduce(function, iterable[, initializer])function:二元函数,iterable:可迭代对象,initializer:初始值(可选)
更新包装函数functools.update_wrapper(wrapper, wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)wrapper:包装函数,wrapped:被包装函数,assigned:要分配的属性,updated:要更新的属性
包装函数functools.wraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAPPER_UPDATES)wrapped:被包装函数,assigned:要分配的属性,updated:要更新的属性
  • 更多高阶函数:提供更多高阶函数操作功能。
知识点函数/方法参数说明
比较函数functools.cmp_to_key(mycmp)mycmp:比较函数
单调函数functools.total_ordering(cls)cls:类
方法缓存functools.cache_property(func)func:方法

13. logging 模块

logging 模块提供了灵活的日志记录功能。常用场景:

  • 记录日志
  • 配置日志记录器
知识点函数/方法参数说明
获取日志记录器logging.getLogger(name)name:日志记录器名称(可选)
设置日志级别logger.setLevel(level)level:日志级别
添加处理器logger.addHandler(handler)handler:日志处理器
日志记录logger.log(level, msg, *args, **kwargs)level:日志级别,msg:日志消息,*args:位置参数,**kwargs:关键字参数
调试日志logger.debug(msg, *args, **kwargs)msg:日志消息,*args:位置参数,**kwargs:关键字参数
信息日志logger.info(msg, *args, **kwargs)msg:日志消息,*args:位置参数,**kwargs:关键字参数
警告日志logger.warning(msg, *args, **kwargs)msg:日志消息,*args:位置参数,**kwargs:关键字参数
错误日志logger.error(msg, *args, **kwargs)msg:日志消息,*args:位置参数,**kwargs:关键字参数
致命日志logger.critical(msg, *args, **kwargs)msg:日志消息,*args:位置参数,**kwargs:关键字参数
  • 配置日志格式:设置日志消息的格式。
知识点函数/方法参数说明
设置格式化器logging.Formatter(fmt, datefmt)fmt:日志格式,datefmt:日期格式
添加格式化器handler.setFormatter(formatter)formatter:格式化器

14. subprocess 模块

subprocess 模块提供了创建和管理子进程的功能。常用场景:

  • 执行系统命令
  • 管理子进程
知识点函数/方法参数说明
运行命令subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None)args:命令和参数列表,stdin:标准输入,input:输入数据,stdout:标准输出,stderr:标准错误,shell:是否通过 shell 执行,cwd:工作目录,timeout:超时时间,check:是否检查返回码,encoding:编码,errors:错误处理,text:是否以文本模式,env:环境变量,universal_newlines:是否使用通用换行符
创建子进程subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=(), *, encoding=None, errors=None, text=None)args:命令和参数列表,bufsize:缓冲区大小,executable:可执行文件,stdin:标准输入,stdout:标准输出,stderr:标准错误,preexec_fn:子进程执行前调用的函数,close_fds:是否关闭文件描述符,shell:是否通过 shell 执行,cwd:工作目录,env:环境变量,universal_newlines:是否使用通用换行符,startupinfo:启动信息,creationflags:创建标志,restore_signals:是否恢复信号,start_new_session:是否启动新会话,pass_fds:传递的文件描述符,encoding:编码,errors:错误处理,text:是否以文本模式
等待子进程结束process.wait(timeout=None)timeout:超时时间(可选)
终止子进程process.terminate()无参数
杀死子进程process.kill()无参数
  • 与子进程通信:与子进程进行输入输出通信。
知识点函数/方法参数说明
写入子进程输入process.stdin.write(data)data:要写入的数据
读取子进程输出process.stdout.read(size=-1)size:要读取的字节数(可选)
读取子进程错误process.stderr.read(size=-1)size:要读取的字节数(可选)

15. socket 模块

socket 模块提供了网络通信的功能。常用场景:

  • 创建网络连接
  • 发送和接收数据
知识点函数/方法参数说明
创建套接字socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)family:地址族,type:套接字类型,proto:协议,fileno:文件描述符
绑定地址socket.bind(address)address:地址
监听连接socket.listen(backlog)backlog:最大连接数
接受连接socket.accept()无参数
连接服务器socket.connect(address)address:服务器地址
发送数据socket.send(bytes)bytes:要发送的数据
接收数据socket.recv(bufsize)bufsize:缓冲区大小
关闭套接字socket.close()无参数
  • 设置套接字选项:配置套接字的行为。
知识点函数/方法参数说明
获取选项socket.getsockopt(level, optname, buflen=None)level:选项级别,optname:选项名称,buflen:缓冲区大小(可选)
设置超时时间socket.settimeout(value)value:超时时间(秒)
获取超时时间socket.gettimeout()无参数

16. threading 模块

threading 模块提供了创建和管理线程的功能。常用场景:

  • 创建多线程
  • 线程同步
知识点函数/方法参数说明
创建线程threading.Thread(target, args=(), kwargs={})target:线程函数,args:位置参数元组,kwargs:关键字参数字典
启动线程thread.start()无参数
等待线程结束thread.join(timeout=None)timeout:超时时间(可选)
锁定资源lock.acquire(blocking=True, timeout=-1)blocking:是否阻塞,timeout:超时时间
释放资源lock.release()无参数
  • 线程局部数据:为每个线程维护独立的数据。
知识点函数/方法参数说明
创建局部数据threading.local()无参数
设置局部数据local.variable = valuevariable:变量名,value:值
获取局部数据value = local.variablevariable:变量名

17. queue 模块

queue 模块提供了线程安全的队列实现。常用场景:

  • 线程间通信
  • 任务调度
知识点函数/方法参数说明
创建队列queue.Queue(maxsize=0)maxsize:队列最大长度(可选)
放入队列queue.put(item, block=True, timeout=None)item:要放入的项,block:是否阻塞,timeout:超时时间
取出队列queue.get(block=True, timeout=None)block:是否阻塞,timeout:超时时间
队列是否为空queue.empty()无参数
队列是否已满queue.full()无参数
  • 其他队列类型:提供更多类型的队列。
知识点函数/方法参数说明
优先级队列queue.PriorityQueue(maxsize=0)maxsize:队列最大长度(可选)
后进先出队列queue.LifoQueue(maxsize=0)maxsize:队列最大长度(可选)

18. multiprocessing 模块

multiprocessing 模块提供了创建和管理多进程的功能。常用场景:

  • 创建多进程
  • 进程间通信
  • 进程同步
知识点函数/方法参数说明
创建进程multiprocessing.Process(target, args=(), kwargs={})target:进程函数,args:位置参数元组,kwargs:关键字参数字典
启动进程process.start()无参数
等待进程结束process.join(timeout=None)timeout:超时时间(可选)
终止进程process.terminate()无参数
获取进程 IDprocess.pid无参数
获取当前进程multiprocessing.current_process()无参数
  • 进程间通信:提供进程间通信功能。
知识点函数/方法参数说明
创建队列multiprocessing.Queue(maxsize=0)maxsize:队列最大长度(可选)
放入队列queue.put(item, block=True, timeout=None)item:要放入的项,block:是否阻塞,timeout:超时时间
取出队列queue.get(block=True, timeout=None)block:是否阻塞,timeout:超时时间
创建管道multiprocessing.Pipe(duplex=True)duplex:是否双向通信
发送数据conn.send(obj)obj:要发送的数据
接收数据conn.recv()无参数
  • 进程同步:提供进程同步功能。
知识点函数/方法参数说明
创建锁multiprocessing.Lock()无参数
锁定资源lock.acquire(block=True, timeout=None)block:是否阻塞,timeout:超时时间
释放资源lock.release()无参数
创建事件multiprocessing.Event()无参数
设置事件event.set()无参数
清除事件event.clear()无参数
等待事件event.wait(timeout=None)timeout:超时时间(可选)

19. asyncio 模块

asyncio 模块提供了异步 I/O、事件循环和协程的功能。常用场景:

  • 创建协程
  • 管理事件循环
  • 异步 I/O 操作
知识点函数/方法参数说明
创建协程async def coroutine():无参数
运行事件循环asyncio.run(main())main:主协程函数
创建任务asyncio.create_task(coro)coro:协程对象
等待协程完成await corocoro:协程对象
并发运行协程await asyncio.gather(*coros)*coros:协程对象列表
  • 异步 I/O 操作:提供异步 I/O 操作功能。
知识点函数/方法参数说明
异步读取文件asyncio.open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)file:文件名,mode:打开模式,buffering:缓冲区大小,encoding:编码,errors:错误处理,newline:换行符,closefd:是否关闭文件描述符,opener:打开器
异步等待await asyncio.sleep(delay, result=None)delay:等待时间(秒),result:返回结果(可选)
异步超时await asyncio.wait_for(fut, timeout)fut:可等待对象,timeout:超时时间
异步锁定资源async with lock:lock:异步锁对象
异步锁asyncio.Lock()无参数
  • 事件循环管理:提供事件循环管理功能。
知识点函数/方法参数说明
获取事件循环asyncio.get_event_loop()无参数
关闭事件循环loop.close()无参数
运行事件循环loop.run_forever()无参数
停止事件循环loop.stop()无参数

20. configparser 模块

configparser 模块提供了配置文件的读写功能。常用场景:

  • 读取配置文件
  • 写入配置文件
知识点函数/方法参数说明
创建配置解析器configparser.ConfigParser()无参数
读取配置文件config.read(filenames, encoding=None)filenames:文件名列表,encoding:编码(可选)
获取配置值config.get(section, option, fallback=None)section:配置段,option:配置项,fallback:默认值(可选)
设置配置值config.set(section, option, value)section:配置段,option:配置项,value:值
写入配置文件config.write(file, space_around_delimiters=True)file:文件对象,space_around_delimiters:是否在分隔符周围添加空格
  • 其他配置操作:提供更多配置文件操作功能。
知识点函数/方法参数说明
添加配置段config.add_section(section)section:配置段名称
删除配置段config.remove_section(section)section:配置段名称
删除配置项config.remove_option(section, option)section:配置段名称,option:配置项名称
  • 22
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ょ镜花う水月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值