python常用标准库

python常用标准库

Python有一套标准库(standard library)。
安装python时,标准库随着Python解释器,一起安装在你的电脑中的,它是Python的一个组成部分。
标准库即Python自带模块,不需要单独安装。
详细参见: python标准库

一、python内置函数:
在这里插入图片描述

二、标准库的三个方面:Python增强,系统互动,以及网络。


第一类:Python增强

1. 文本处理服务

  1. re — 正则表达式操作
    在这里插入图片描述
    在线正则表达式测试
    python可以用正则表达式(regular expression)来处理字符串,正则表达式是一个字符串模板。

    import re
    a = re.findall("\d+","321dfdf41")
    print(a)
    # 输出打印['321', '41']
    b = re.findall("\d","312fddf541")
    print(b)
    # 输出打印['3', '1', '2', '5', '4', '1']
    

    注:其他实例参见此博客


  2. textwrap—文本自动换行与填充

  3. string — 常见的字符串操作

  4. difflib — 计算差异的辅助工具

  5. unicodedata — Unicode 数据库

  6. stringprep — 因特网字符串预备

  7. readline — GNU readline 接口

    readline模块定义了一系列函数用来读写Python解释器中历史命令,并提供自动补全命令功能。这个模块可以通过relcompleter模块直接调用,模块中的设置会影响解释器中的交互提示,以及内置函数raw_input()和input()提供的提示。


  8. rlcompleter — GNU readline 的补全函数

2. 数据类型

  1. datetime — 基本的日期和时间类型
    datetime.date类: date对象表示理想化日历中的日期(年、月和日), 公历1年1月1日被称为第一天,依次往后推。
    datetime.time类:表示一个(当地)时间对象,与任何特定的日期无关,并且可以通过tzinfo(时区)对象进行调整。
    datetime.datetime类:datetime对象包含date对象和time对象的所有信息

    from datetime import datetime, time, date
    # 输出
    datetime.today(): 2021-04-06 16:53:12.080000
    datetime.now(): 2021-04-06 16:53:12.080000
    datetime.utcnow(): 2021-04-06 08:53:12.080000
    datetime.fromtimestamp(1491468000): 2017-04-06 16:40:00
    datetime.fromordinal(699000): 1914-10-19 00:00:00
    datetime.combine(date(2012,12,12), time(12,12,12)): 2012-12-12 23:59:59
    datetime.strptime("2012-12-10", "%Y-%m-%d"): 2012-12-10 00:00:00
    

    其他实例参见此博客


  2. zoneinfo — IANA 时区支持

  3. calendar — 日历相关函数

    import calendar
    cal = calendar.TextCalendar(calendar.SUNDAY)
    print(cal.formatyear(2020, 2, 1, 1, 3))
    

    在这里插入图片描述


  4. collections — 容器数据类型
    Python数据结构常用模块:collections、heapq、operator、itertools
    collections常用类型有:计数器(Counter),双向队列(deque),默认字典(defaultdict),有序字典(OrderedDict),可命名元组(namedtuple) 
    实例参见博客


  5. collections.abc — 容器的抽象基类

  6. heapq — 堆队列算法

  7. bisect — 数组二分查找算法

  8. array — 高效的数值数组

  9. weakref — 弱引用

  10. types — 动态类型创建和内置类型名称

  11. copy — 浅层 (shallow) 和深层 (deep) 复制操作
    Python中的赋值语句不复制对象,它们在目标和对象之间建立索引。对于可变项目或可变项目的集合,有时需要一个副本,以便可以更改一个副本而不更改其他副本。该模块提供通用的浅层和深层copy操作。
    实例参考此博客


  12. pprint — 数据美化输出

  13. reprlib — 另一种 repr() 实现

  14. enum — 对枚举的支持

  15. graphlib — Functionality to operate with graph-like structures

4. 数字和数学模块

  1. numbers — 数字的抽象基类

  2. math — 数学函数

    import math
    print(dir(math))
    # 打印输出:
    ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
    
    

  3. cmath — 关于复数的数学函数
    复数在 Python 中的表达式为 C==c.real+c.imag*j
    cmath 模块和 Python 中的 math 模块对应, math提供对于实数运算的支持, cmath 模块对复数运算和其他复杂运算的支持。


  4. decimal — 十进制定点和浮点运算

  5. fractions — 分数

  6. random — 生成伪随机数

    random.random() #用于生成一个0到1的随机浮点数:0<= n < 1.0
    random.uniform(a,b)  #用于生成一个指定范围内的随机浮点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: b <= n <= a。如果 a <b, 则 a <= n <= b。
    random.randint(a, b) #用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
    random.randrange([start], stop[, step]) #从指定范围内,按指定基数递增的集合中 获取一个随机数。
    random.choice(sequence) #random.choice从序列中获取一个随机元素。
    random.shuffle(x[, random]) #用于将一个列表中的元素打乱,即将列表内的元素随机排列。
    random.sample(sequence, k) #从指定序列中随机获取指定长度的片断并随机排列。注意:sample函数不会修改原有序列。
    

  7. statistics — 数学统计函数

5.函数式编程模块

  1. itertools — 为高效循环而创建迭代器的函数
  2. functools — 高阶函数和可调用对象上的操作
  3. operator — 标准运算符替代函数

6.文件和目录访问

  1. pathlib — 面向对象的文件系统路径
  2. os.path — 常用路径操作
  3. fileinput — 迭代来自多个输入流的行
  4. stat — 解析 stat() 结果
  5. filecmp — 文件及目录的比较
  6. tempfile — 生成临时文件和目录
  7. glob — Unix 风格路径名模式扩展
  8. fnmatch — Unix 文件名模式匹配
  9. linecache — 随机读写文本行
  10. shutil — 高阶文件操作

7.数据持久化

  1. pickle — Python 对象序列化
  2. copyreg — 注册配合 pickle 模块使用的函数
  3. shelve — Python 对象持久化
  4. marshal — 内部 Python 对象序列化
  5. dbm — Unix “数据库” 接口
  6. sqlite3 — SQLite 数据库 DB-API 2.0 接口模块

8.数据压缩和存档

  1. zlib — 与 gzip 兼容的压缩
  2. gzip — 对 gzip 格式的支持
  3. bz2 — 对 bzip2 压缩算法的支持
  4. lzma — 用 LZMA 算法压缩
  5. zipfile — 使用ZIP存档
  6. tarfile — 读写tar归档文件

9.文件格式

  1. csv — CSV 文件读写
  2. configparser — 配置文件解析器
  3. netrc — netrc 文件处理
  4. xdrlib — 编码与解码 XDR 数据
  5. plistlib — 生成与解析 Apple .plist 文件

10.加密服务

  1. hashlib — 安全哈希与消息摘要
  2. hmac — 基于密钥的消息验证
  3. secrets — 生成安全随机数字用于管理密码

11.二进制数据服务

  1. struct — 将字节串解读为打包的二进制数据
  2. codecs — 编解码器注册和相关基类

第二类:系统互动

1. Python运行控制

通用操作系统服务

  1. os— 多种操作系统接口
  2. io— 处理流的核心工具
  3. argparse — 命令行选项、参数和子命令解析器

1.argparse模块可以让人轻松编写用户友好的命令行接口
2.自动生成帮助和使用手册
3.用户给程序传入无效参数时报出错误信息

如何使用argparse

  1. 首先导入这个包,argparse是python标准库,不需要安装;创建一个ArgumentParser对象,构造一个解析器parser。自定义description描述。

    import argparse
    
    parser = argparse.ArgumentParser(description="求长方形求面积")
    parser.add_argument("a", type=int, help="长度")
    parser.add_argument("b", type=int, help="宽度")
    parser.add_argument("-i", "--info", help="我是可选参数")
    
     调用add_argument()添加参数:
     type表示接收的数据类型,不定义默认为str,此处需要计算面积,需要int类型;
     help参数为提示信息,后面会看到效果;
     再添加一个可选参数 --info -i 表示参数简写
    
    1. 调用parse_args(),读取命令行传入的参数,并进行解析后,存储或者执行相关的操作
    args = parser.parse_args()
    

  1. time — 时间的访问和转换

    time模块

  2. getopt — C 风格的命令行选项解析器

  3. logging — Python 的日志记录工具

  4. logging.config — 日志记录配置

  5. logging.handlers — 日志处理程序

  6. getpass — 便携式密码输入工具

  7. curses — 终端字符单元显示的处理

  8. curses.textpad — 用于 curses 程序的文本输入控件

  9. curses.ascii — 用于 ASCII 字符的工具

  10. curses.panel — curses 的面板栈扩展

  11. platform — 获取底层平台的标识数据

  12. errno — 标准 errno 系统符号

  13. ctypes — Python 的外部函数库

Python运行时服务

  1. sys — 系统相关的参数和函数

    sys模块的常见函数列表
    sys.argv: 实现从程序外部向程序传递参数。
    sys.exit([arg]): 程序中间的退出,arg=0为正常退出。
    sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。
    sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )
    sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.
    sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
    sys.platform: 获取当前系统平台。
    sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
    

  2. sysconfig — Provide access to Python’s configuration information

  3. builtins — 内建对象

  4. __main__ — 顶层脚本环境

  5. warnings — Warning control

  6. dataclasses — 数据类

  7. contextlib — 为 with语句上下文提供的工具

  8. abc — 抽象基类

  9. atexit — 退出处理器

  10. traceback — 打印或检索堆栈回溯

  11. __future__— Future 语句定义

  12. gc — 垃圾回收器接口

  13. inspect — 检查对象

  14. site —— 指定域的配置钩子

并发执行

  1. threading — 基于线程的并行
    多线程模块threading,该模块支持守护线程,其工作方式:守护线程一般是一个等待客户端请求的服务器。如果没有客户端请求,守护线程就是空闲的。如果把一个线程设置为守护线程,就表示这个线程是不重要的,进程退出时不需要等待这个线程执行完成。
    参看此博客


  2. multiprocessing — 基于进程的并行

  3. multiprocessing.shared_memory — 可从进程直接访问的共享内存

  4. concurrent

  5. concurrent.futures — 启动并行任务

  6. subprocess — 子进程管理

  7. sched — 事件调度器

  8. queue — 一个同步的队列类

  9. _thread — 底层多线程 API


第三类:网络

网络和进程间通信

  1. asyncio — 异步 I/O
  2. socket — 底层网络接口
  3. ssl — 套接字对象的 TLS/SSL 包装器
  4. select — 等待 I/O 完成
  5. selectors — 高级 I/O 复用库
  6. asyncore — 异步套接字处理器
  7. asynchat — 异步套接字指令/响应处理程序
  8. signal — 设置异步事件处理程序
  9. mmap — 内存映射文件支持

互联网数据处理

  1. email — 电子邮件与 MIME 处理包
  2. json — JSON 编码和解码器
  3. mailcap — Mailcap 文件处理
  4. mailbox — Manipulate mailboxes in various formats
  5. mimetypes — Map filenames to MIME types
  6. base64 — Base16, Base32, Base64, Base85 数据编码
  7. binhex — 对binhex4文件进行编码和解码
  8. binascii — 二进制和 ASCII 码互转
  9. quopri — 编码与解码经过 MIME 转码的可打印数据
  10. uu — 对 uuencode 文件进行编码与解码

结构化标记处理工具

  1. html — 超文本标记语言支持
  2. html.parser — 简单的 HTML 和 XHTML 解析器
  3. html.entities — HTML 一般实体的定义

XML处理模块

  1. xml.etree.ElementTree — ElementTree XML API
  2. xml.dom — The Document Object Model API
  3. xml.dom.minidom — Minimal DOM implementation
  4. xml.dom.pulldom — Support for building partial DOM trees
  5. xml.sax — Support for SAX2 parsers
  6. xml.sax.handler — Base classes for SAX handlers
  7. xml.sax.saxutils — SAX 工具集
  8. xml.sax.xmlreader — Interface for XML parsers
  9. xml.parsers.expat — Fast XML parsing using Expat

互联网协议和支持

  1. webbrowser — 方便的Web浏览器控制器

  2. cgi — Common Gateway Interface support

  3. cgitb — 用于 CGI 脚本的回溯管理器

  4. wsgiref — WSGI Utilities and Reference Implementation

  5. urllib — URL 处理模块

  6. urllib.request — 用于打开 URL 的可扩展库

  7. urllib.response — urllib 使用的 Response 类

  8. urllib.parse — 用于解析 URL

  9. urllib.error — urllib.request 引发的异常类

  10. urllib.robotparser — robots.txt 语法分析程序

  11. http — HTTP 模块

  12. http.client — HTTP 协议客户端

  13. ftplib — FTP 协议客户端

  14. poplib — POP3 协议客户端

  15. imaplib — IMAP4 协议客户端

  16. nntplib — NNTP protocol client

  17. smtplib —SMTP协议客户端

  18. smtpd — SMTP 服务器

  19. telnetlib — Telnet client

  20. uuid — UUID objects according to RFC 4122

  21. socketserver — A framework for network servers

  22. http.server — HTTP 服务器

  23. http.cookies — HTTP状态管理

  24. http.cookiejar —— HTTP 客户端的 Cookie 处理

  25. xmlrpc — XMLRPC 服务端与客户端模块

  26. xmlrpc.client — XML-RPC client access

  27. xmlrpc.server — Basic XML-RPC servers

  28. ipaddress — IPv4/IPv6 操作库


python其他标准库

contextvars — 上下文变量

  1. 上下文变量
  2. 手动上下文管理
  3. asyncio 支持

多媒体服务

  1. audioop — 处理原始音频数据
  2. aifc — 读写 AIFF 和 AIFC 文件
  3. sunau — 读写 Sun AU 文件
  4. wave — 读写WAV格式文件
  5. chunk — 读取 IFF 分块数据
  6. colorsys — 颜色系统间的转换
  7. imghdr — 推测图像类型
  8. sndhdr — 推测声音文件的类型
  9. ossaudiodev — Access to OSS-compatible audio devices

国际化

  1. gettext — 多语种国际化服务
  2. locale — 国际化服务

程序框架

  1. turtle — 海龟绘图
  2. cmd — 支持面向行的命令解释器
  3. shlex — Simple lexical analysis

Tk图形用户界面(GUI)

  1. tkinter — Tcl/Tk的Python接口
  2. tkinter.colorchooser — 颜色选择对话框
  3. tkinter.font — Tkinter 字体封装
  4. Tkinter 对话框
  5. tkinter.messagebox — Tkinter 消息提示
  6. tkinter.scrolledtext — 滚动文字控件
  7. tkinter.dnd — 拖放操作支持
  8. tkinter.ttk — Tk主题部件
  9. tkinter.tix — Extension widgets for Tk
  10. IDLE
  11. 其他图形用户界面(GUI)包

开发工具

  1. typing — 类型提示支持
  2. pydoc — 文档生成器和在线帮助系统
  3. Python Development Mode
  4. Effects of the Python Development Mode
  5. ResourceWarning Example
  6. Bad file descriptor error example
  7. doctest — 测试交互性的Python示例
  8. unittest — 单元测试框架
  9. unittest.mock — mock对象库
  10. unittest.mock 上手指南

2to3 - 自动将 Python 2 代码转为 Python 3 代码

  1. test — Python回归测试包
  2. test.support — Utilities for the Python test suite
  3. test.support.socket_helper — Utilities for socket tests
  4. test.support.script_helper — Utilities for the Python execution tests
  5. test.support.bytecode_helper — Support tools for testing correct bytecode generation

调试和分析

  1. 审计事件表
  2. bdb — Debugger framework
  3. faulthandler — Dump the Python traceback
  4. pdb — Python 的调试器
  5. Python Profilers 分析器
  6. timeit — 测量小代码片段的执行时间
  7. trace — 跟踪Python语句执行
  8. tracemalloc — 跟踪内存分配

软件打包和分发

  1. distutils — 构建和安装 Python 模块
  2. ensurepip — Bootstrapping the pip installer
  3. venv — 创建虚拟环境
  4. zipapp — Manage executable Python zip archives

自定义 Python 解释器

  1. code — 解释器基类
  2. codeop — 编译Python代码

导入模块

  1. zipimport — 从 Zip 存档中导入模块
  2. pkgutil — 包扩展工具
  3. modulefinder — 查找脚本使用的模块
  4. runpy — Locating and executing Python modules
  5. importlib — import 的实现
  6. Using importlib.metadata

Python 语言服务

  1. parser — 访问 Python 解析树
  2. ast — 抽象语法树
  3. symtable — Access to the compiler’s symbol tables
  4. symbol — 与 Python 解析树一起使用的常量
  5. token — 与Python解析树一起使用的常量
  6. keyword — 检验Python关键字
  7. tokenize — 对 Python 代码使用的标记解析器
  8. tabnanny — 模糊缩进检测
  9. pyclbr — Python 模块浏览器支持
  10. py_compile — 编译 Python 源文件
  11. compileall — Byte-compile Python libraries
  12. dis — Python 字节码反汇编器
  13. pickletools — pickle 开发者工具集

杂项服务

  1. formatter — 通用格式化输出

Windows系统相关模块

  1. msilib — Read and write Microsoft Installer files
  2. msvcrt — 来自 MS VC++ 运行时的有用例程
  3. winreg — Windows 注册表访问
  4. winsound — Sound-playing interface for Windows

Unix 专有服务

  1. posix — 最常见的 POSIX 系统调用
  2. pwd — 用户密码数据库
  3. spwd — The shadow password database
  4. grp — 组数据库
  5. crypt — Function to check Unix passwords
  6. termios — POSIX 风格的 tty 控制
  7. tty — 终端控制功能
  8. pty — 伪终端工具
  9. fcntl — The fcntl and ioctl system calls
  10. pipes — 终端管道接口
  11. resource — Resource usage information
  12. nis — Sun 的 NIS (黄页) 接口
  13. Unix syslog 库例程

被取代的模块

  1. optparse — 解析器的命令行选项
  2. imp — Access the import internals

未创建文档的模块

  1. 平台特定模块

标准库网址:

  • 14
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

柏常青

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

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

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

打赏作者

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

抵扣说明:

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

余额充值