repo:
github.com/alphardex/p…
想掌握Python标准库,读它的
官方文档
很重要。本文并非此文档的复制版,而是对每一个库的一句话概括以及它的主要函数,由此用什么库心里就会有数了。
string: 提供了字符集:ascii_lowercase, ascii_uppercase, digits, hexdigits, punctuation
re: 正则表达式支持(pattern, string):match, search, findall, sub, split, finditer
datetime: 处理日期,建议用
arrow
代替
calendar: 日历: Calendar
collections: 其他数据结构: deque, Counter, defaultdict, namedtuple
heapq: 堆排序实现: nlargest, nsmallest, merge
bisect: 二分查找实现: bisect, insort
array: 数列实现: array
copy: 浅拷贝和深拷贝: copy, deepcopy
pprint: 漂亮地输出文本: pprint
enum: 枚举类的实现: Enum
math: 数学函数库,函数太多故不一一列举
fractions: 分数运算: Fraction as F
random: 随机数: choice, randint, randrange, sample, shuffle, gauss
statistics: 统计学函数: mean, median, mode, variance
函数式编程
itertools: 迭代器工具: permutations, combinations, product, chain, repeat, cycle, accumulate
functools: 函数工具: @wraps, reduce, partial, @lrucache, @singledispatch
operator: 基本运算符
文件目录访问
pathlib: 对路径对象进行操作,完美替代os.path: Path
fileinput: 读取一个或多个文件并处理行: input
filecmp: 比较两个文件是否相同: cmp
tempfile:用来创建临时文件,一关闭就自动删除:TemporaryFile
linecache: 读取文件的行,缓存优化: getline, getlines
shutil: 文件操作: copy, copytree, rmtree, move, make_archive
数据持久化
pickle: 文件pickle序列化: dump, dumps, load, loads
sqlite3: sqlite数据库接口
csv: 处理csv文件: reader, writeheader, writerow
configparser: 处理配置文件: ConfigParser, get, sections
hashlib: 哈希加密算法: sha256, hexdigest
secrets:密钥生成:token_bytes, token_hex, token_urlsafe
os: 操作系统,具体看文档
io: 在内存中读写str和bytes: StringIO, BytesIO, write, get_value
time: 计时器: time, sleep, strftime
argparse, getopt: 命令行处理,建议用
click
或
docopt
代替
logging: 打日志: debug, info, warning, error, critical,建议用
loguru
代替
getpass: 获取用户输入的密码: getpass
platform: 提供跨平台支持: uname, system
threading: 多线程模型: Thread, start, join
multiprocessing: 多进程模型: Pool, map, Process
concurrent.futures: 异步执行模型: ThreadPoolExecutor, ProcessPoolExecutor
subprocess: 子进程管理: run
sched: 调度工具,建议用
schedule
代替
queue: 同步队列: Queue
进程间通信和网络
asyncio: 异步IO, eventloop, 协程: get_event_loop, run_until_complete, wait, async和await关键字
网络数据处理
email: 处理email,建议用
yagmail
代替
json: 处理json: dumps, loads
base64: 处理base64编码: b64encode, b64decode
结构化标记语言工具
html: 转义html: escape, unescape
html.parser: 解析html,建议用
parsel
代替
网络协议支持
webbrowser: 打开浏览器: open
wsgiref: 实现WSGI接口
uuid: 通用唯一识别码: uuid1, uuid3, uuid4, uuid5
ftplib, poplib, imaplib, nntplib, smptlib, telnetlib: 实现各种网络协议
其余库用
requests
代替
turtle: 画图工具
cmd: 实现交互式shell
shlex: 利用shell的语法分割字符串: split
tkinter:可用
pysimplegui
代替,超好用
typing: 类型注解,可配合
mypy
对项目进行静态类型检查
pydoc: 查阅模块文档: python -m pydoc [name]
doctest: 文档测试: python -m doctest [pyfile]
unittest: 单元测试: python -m unittest [pyfile]
DEBUG和性能优化
pdb: Python Debugger: python -m pdb [pyfile]
cProfile: 分析程序性能: python -m cProfile [pyfile]
timeit: 检测代码运行时间: python -m timeit [pyfile]
软件打包发布
setuptools: 编写setup.py专用: setup, find_packages
venv: 创建虚拟环境,建议用
pipenv
代替
Python运行时服务
sys: 系统环境交互: argv, path, exit, stderr, stdin, stdout
builtins: 所有的内置函数和类,默认引进(还有一个
boltons
扩充了许多有用的函数和类)
__main__: 顶层运行环境,使得python文件既可以独立运行,也可以当做模块导入到其他文件。
warnings: 警告功能(代码过时等): warn
contextlib: 上下文管理器实现: @contextmanager
inspect:用于获取对象的各种信息(自省)
自定义Python解释器
code: 实现自定义的Python解释器(比如Scrapy的shell): interact