在 python 的 ref 里面有不少有用的 python 库介绍,这里列几个:
- string 字符串操作,包括判断类型,格式化,字符串模版。
- re 正则表达式,用于创建 re 对象,进行正则表达式匹配、替换、拆分等行为。
- struct 用于将 python 中某些对象转换成为 C 中 struct,但以 python 中的 string 表达这个二进制数据,常用于串行化数据。
- difflib 实现了文件的比较,包括某些带有格式信息的(如 HTML)字符串、文件的比较方式。
- textwrap 提供字符串输出的时候的换行功能。
- codecs 是 python 的编码解码库,提供了常见编码方式(如 utf8 等)编码。
- fpformat 提供了固定点(fixing point 相对于 floating point)的格式化函数。
- datetime 提供了基本的日期、时间操作。calendar 提供了相关的日历操作。
- collections 提供了除 python 默认的容器以外的一些高性能容器类,如 namedtuple、deque、Counter、OrderedDict;heapq 实现了利用堆实现的优先队列;
- bisect 实现的是有序表的二分查找;
- array 实现的是类似数组的功能,能够更高效的用于数值计算。
- sched 基本的调度函数,可以在指定时间执行某些函数。但是它不是线程安全的。
- queue 实现了一些基本的队列,如先进后出,优先队列等。
- weakref 允许创建“弱引用”,一般说来 python 的 GC 不会清理带有引用的对象,但是如果使用 weakref 则允许存在某些对象被 GC 清理掉,这样创建的 weakref 将返回 None 共程序员决定是否重新加载该对象。
- UserDict、UserList 和 UserString 提供了用户自己实现字典、列表和字符串的基本接口。
- types 提供了运行时类型判定。
- copy 提供了深度和浅层对象的复制。
- pprint 提供了更好看的 print。
- repr 提供了另一种 repr。
- numbers 提供了常用数的类,如有理数、复数等。
- math 和 cmath 提供了一些常用的数学函数,后者是复数使用的。decimal 是固定精度计算和浮点数计算的函数。
- fraction 提供了有理数计算。
- random 提供了随机数生成。
- itertool 提供了一些生成 iterator 的工具。
- functool 产生 functor 的工具。
- operator 一些常用的运算符。
- os.path 访问文件、目录的常用函数
- fileinput 用于按照行读入文件内容;
- stat 实现的是 libc 里面的 stat() 函数功能;
- tempfile 产生临时文件和临时目录;
- glob 产生文件名展开的结果;
- fnmatch 产生文件名匹配;
- linecache 允许随机访问文件的每行,但使用了 cache,这样访问效率较高;
- shutil 是 shell 的常用工具,包括较高层的文件操作,如复制,重命名等;
- pickle 可以用来串行化 python 对象;cPickle 实现的更快;copy(_)reg 用于注册 pickle;
- shelve 是一个 persistent 且和字典类似的对象(通过 pickle),可以用于串行化 python 对象并使之 persistent。类似的接口存在于访问数据库的一些模块里面。
- marshal 用于直接串行化 python 对象,它处理的不是 pickle 产生的串行化对象,而是依赖于当前 python 版本的二进制数据;
- sqlite3 访问 sqlite3 数据库,嗯,这作为我第一个使用的 SQL 数据库玩玩吧;
- 几个用于压缩的 zlib、gzip 和 bz2;
- 几个特殊的文件格式 csv、ConfigParser(跟 ini 文件格式类似)和 plistlib(就是 mac 下面的那个 plist 文件);
- 几个 hash 和数字签名的模块,如 hashlib、hmac、sha 和 md5;
- 常用 os 相关命令,如目录操作等;输入输出使用 io 模块;
- time 和 time.h 里面提供的函数类似;
- argparse 用于解析命令行参数;
- logging 用于产生日志;
- getpass 用于获得登陆信息;
- curses 用于 terminal 字符显示(和 ncurses 类似?)
- platform 用于获得主机信息;
- errno 和 ctypes 对应 C 的对应功能;
- select 对应与 C 中 select() 函数;
- threading 提供了比较高级的多线程工具,而 thread 相对较低级;
- multiprocessing 多进程编程;
- readline 将 readline 库的基本功能打包了;rlcompleter 用于 readline 的补全功能;
- 子进程管理 subprocess,包括使用管道等;socket 包含了 socket 通信;signal 设置进程信号处理 handler;
- email 包含了处理邮件的常用功能;json 允许我们处理 json 格式的数据;HTMLParser 允许我们处理 html 文件;
- cgi 允许我们写 CGI 程序;httplib 允许我们使用 HTTP 客户端的基本功能;类似的还支持 ftp 等协议;
- SimpleHTPServer 是一个简单的 http server 实现;
- 音频视频处理 audioop 和 imageop;
- 颜色转换 colorsys;
- 多国文字支持 gettext 和 locale,与 C 程序类似;
- cmd 支持建立命令行处理程序;
- pydoc 是 python 的文档系统,地位和 perldoc 类似;
- unittest 用于单元测试;test 用于 regression test;
嗯,我们下面将仔细学习其中某些有意思的库。
- re
- weakref
- itertool
- functool
- operator
- pickle
- shelve
- sqlite3
- os
- io
- argparse
- logging
- threading
- subprocess
- json
- pydoc
- unittest
- test
No comments:
Post a Comment