在知乎和CSDN的圈子里,经常看到、听到一些 python 初学者说,学完基础语法后,不知道该学什么,学了也不知道怎么用,一脸的茫然。近日,CSDN的公众号推送了一篇博客,题目叫做《迷思:Python 学到什么程度可以面试工作?》,真实反映了 python 程序员在成长过程中的一些困惑。
英汉小词典
pythoneer - 指所有用python语言开发程序的人
pythonista - 意为资深的、追求质量和品味的python开发者
我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。本文所列举的这100个模块,是我在工作和学习中用过的或者正在学习的,算是对自己过去12年的学习总结。希望对处在迷茫中的程序员有所帮助。
在这个列表中,我把模块分成11大类:
- 基础类
- 数据库接口类
- 网络通讯类
- 音像游戏类
- GUI类
- web框架类
- 科学计算类
- 2D/3D类
- 数据处理类
- 机器学习类
- 工具类
针对每一个模块,根据以往的工作经验,我给出了相应的推荐指数,从1颗星到5颗星。这是一个非常主观的判断,仅供参考。
- ★☆☆☆☆:较少被用到
- ★★☆☆☆:重要但较少被用到,
- ★★★☆☆:解决特定问题不可或缺
- ★★★★☆:主流应用,优先学习
- ★★★★★:同类模块最优,或学习优先级最高
从 pythoneer 到 pythonista 的100个模块
No. | 来源 | 模块 | 说明 | 分类 | 推荐指数 |
---|---|---|---|---|---|
1 | 标准库 | os | 文件和路径操作功能 | 基础类 | ★★★★★ |
2 | 标准库 | sys | 系统和环境相关功能 | 基础类 | ★★★☆☆ |
3 | 标准库 | time | 时间库 | 基础类 | ★★★★☆ |
4 | 标准库 | datetime | 日期处理库 | 基础类 | ★★★★★ |
5 | 第三方库 | dateutil | datetime模块的扩展 | 基础类 | ★★☆☆☆ |
6 | 标准库 | math | 数学函数库 | 基础类 | ★★★★☆ |
7 | 标准库 | random | 随机数库 | 基础类 | ★★★☆☆ |
8 | 标准库 | re | 正则表达式功能 | 基础类 | ★★★★☆ |
9 | 标准库 | queue | 队列功能 | 基础类 | ★★★☆☆ |
10 | 标准库 | copy | 数据复制库 | 基础类 | ★★★☆☆ |
11 | 标准库 | threading | 线程接口 | 基础类 | ★★★★★ |
12 | 标准库 | multiprocessing | 基于进程的“线程”接口 | 基础类 | ★★★★★ |
13 | 标准库 | configparser | ini文件解析器 | 基础类 | ★★☆☆☆ |
14 | 标准库 | argparse | 命令行选项、参数和子命令解析器 | 基础类 | ★★☆☆☆ |
15 | 标准库 | json | json库 | 基础类 | ★★★★☆ |
16 | 标准库 | base64 | Base16/32/64/85数据编码库 | 基础类 | ★★★☆☆ |
17 | 标准库 | uuid | 通用唯一识别码 | 基础类 | ★★★☆☆ |
18 | 标准库 | hashlib | md5, sha等hash算法库 | 基础类 | ★★★★☆ |
19 | 标准库 | glob | 文件和路径查找功能 | 基础类 | ★☆☆☆☆ |
20 | 标准库 | shutil | 对文件与文件夹各种常见操作 | 基础类 | ★★★☆☆ |
21 | 标准库 | zipfile | 创建读写添加及列出ZIP文件的工具 | 基础类 | ★★☆☆☆ |
22 | 标准库 | tartfile | 创建读写添加及列出TAR文件的工具 | 基础类 | ★★☆☆☆ |
23 | 标准库 | gc | 垃圾回收库 | 基础类 | ★★☆☆☆ |
24 | 标准库 | logging | 日志功能 | 基础类 | ★★★★☆ |
25 | 标准库 | ctypes | 用来调用C代码的外来函数接口 | 基础类 | ★★★☆☆ |
26 | 标准库 | struct | 将字节串解读为打包的二进制数据 | 基础类 | ★★☆☆☆ |
27 | 标准库 | unittest | 单元测试框架 | 基础类 | ★★☆☆☆ |
28 | 第三方库 | xlrd | 读Excel文件的数据和格式信息 | 基础类 | ★★★★☆ |
29 | 第三方库 | xlwt | 写Excel文件的数据和格式信息 | 基础类 | ★★★★☆ |
30 | 第三方库 | freetype | 字体文件读取库 | 基础类 | ★★☆☆☆ |
31 | 第三方库 | APScheduler | 进程内任务调度 | 基础类 | ★★★☆☆ |
32 | 第三方库 | watchdog | 管理文件系统事件的API和shell工具 | 基础类 | ★★★☆☆ |
33 | 标准库 | sqlite3 | 文件型数据库驱动 | 数据库接口类 | ★★★★★ |
34 | 标准库 | PyMySQL | MySQL数据库的连接库 | 数据库接口类 | ★★★★☆ |
35 | 标准库 | cx_oracle | oracle数据库的连接库 | 数据库接口类 | ★★★★☆ |
36 | 标准库 | pymongo | mongodb数据库的连接库 | 数据库接口类 | ★★★☆☆ |
37 | 标准库 | redis | redis数据库的连接库 | 数据库接口类 | ★★☆☆☆ |
38 | 标准库 | pyodbc | 数据库通用接口标准连接库 | 数据库接口类 | ★★☆☆☆ |
39 | 标准库 | socket | socket通讯库 | 网络通讯类 | ★★★★☆ |
40 | 标准库 | socketserver | socket服务器 | 网络通讯类 | ★★★☆☆ |
41 | 标准库 | xmlrpc | xmlrpc服务器 | 网络通讯类 | ★★★☆☆ |
42 | 标准库 | ftplib | FTP服务连接库 | 网络通讯类 | ★★★☆☆ |
43 | 标准库 | smtplib | 邮件发送库 | 网络通讯类 | ★☆☆☆☆ |
44 | 标准库 | 邮件库 | 网络通讯类 | ★☆☆☆☆ | |
45 | 标准库 | urllib | 网络请求库 | 网络通讯类 | ★★★★☆ |
46 | 第三方库 | pyserial | 串口通讯库 | 网络通讯类 | ★★☆☆☆ |
47 | 第三方库 | paramiko | SSH2远程安装连接库 | 网络通讯类 | ★★☆☆☆ |
48 | 第三方库 | pycurl | 多协议文件传输库 | 网络通讯类 | ★★★★★ |
49 | 第三方库 | requests | http请求的模块 | 网络通讯类 | ★★★★☆ |
50 | 标准库 | asyncio | 异步I/O、事件循环、协程以及任务 | 网络通讯类 | ★★☆☆☆ |
51 | 第三方库 | twisted | 基于事件驱动的网络引擎框架 | 网络通讯类 | ★★☆☆☆ |
52 | 第三方库 | dispy | 分布式并行计算框架 | 网络通讯类 | ★★☆☆☆ |
53 | 第三方库 | pp | 支持SMP和集群方式的并行计算框架 | 网络通讯类 | ★★☆☆☆ |
54 | 第三方库 | pillow | 图像处理库 | 音像游戏类 | ★★★★★ |
55 | 第三方库 | opencv | 计算机视觉库 | 音像游戏类 | ★★★★★ |
56 | 第三方库 | imageio | GIF、AVI文件生成 | 音像游戏类 | ★★☆☆☆ |
57 | 第三方库 | pygame | python游戏开发模块 | 音像游戏类 | ★★★★☆ |
58 | 第三方库 | pyaudio | 跨平台的音频I/O库 | 音像游戏类 | ★★★☆☆ |
59 | 标准库 | winsound | windows平台基本声音播放库 | 音像游戏类 | ★★☆☆☆ |
60 | 第三方库 | wxpython | GUI图形库 | GUI类 | ★★★★★ |
61 | 第三方库 | pyqt | GUI图形库 | GUI类 | ★★★★☆ |
62 | 标准库 | tkinter | GUI图形库 | GUI类 | ★☆☆☆☆ |
63 | 第三方库 | cefpython3 | 将浏览器嵌入到GUI中 | GUI类 | ★☆☆☆☆ |
64 | 第三方库 | pywin32 | 针对Windows的Python扩展 | GUI类 | ★★★☆☆ |
65 | 第三方库 | tornado | 非阻塞式Web服务器框架 | web框架类 | ★★★★★ |
66 | 第三方库 | django | 重量级Web服务器框架 | web框架类 | ★★★★☆ |
67 | 第三方库 | flask | 轻量级Web服务器框架 | web框架类 | ★★★☆☆ |
68 | 第三方库 | numpy | 科学计算的基础软件包 | 科学计算类 | ★★★★★ |
69 | 第三方库 | scipy | 科学计算常用软件包 | 科学计算类 | ★★★★☆ |
70 | 第三方库 | sympy | 科学计算库 | 科学计算类 | ★★★☆☆ |
71 | 第三方库 | eigen | 矩阵运算库 | 科学计算类 | ★★☆☆☆ |
72 | 第三方库 | pyopengl | opengl的python接口 | 2D/3D类 | ★★★★★ |
73 | 第三方库 | vispy | 交互式科学可视化的Python库 | 2D/3D类 | ★★★☆☆ |
74 | 第三方库 | vtk | 三维计算机图形学、图像处理和可视化 | 2D/3D类 | ★★★☆☆ |
75 | 第三方库 | mayavi | 基于VTK的3D绘图库 | 2D/3D类 | ★★★☆☆ |
76 | 第三方库 | matplotlib | 2D绘图库 | 2D/3D类 | ★★★★★ |
77 | 第三方库 | basemap | matplotlib的地图库 | 2D/3D类 | ★★★☆☆ |
78 | 第三方库 | pyproj | 地理投影坐标转换库 | 2D/3D类 | ★★☆☆☆ |
79 | 第三方库 | bokeh | 针对浏览器的交互式可视化库 | 2D/3D类 | ★★★★☆ |
80 | 第三方库 | pyecharts | 生成 Echarts 图表的类库 | 2D/3D类 | ★★★☆☆ |
81 | 第三方库 | h5py | HDF文件读写库 | 数据处理类 | ★★★☆☆ |
82 | 第三方库 | netcdf4 | NC文件读写库 | 数据处理类 | ★★★☆☆ |
83 | 第三方库 | pyshp | shape文件解析 | 数据处理类 | ★★☆☆☆ |
84 | 第三方库 | xmltodict | xml转换成json | 数据处理类 | ★★★☆☆ |
85 | 标准库 | xml | xml解析库 | 数据处理类 | ★☆☆☆☆ |
86 | 第三方库 | lxml | xml和html的解析库,支持XPath | 数据处理类 | ★★★★☆ |
87 | 第三方库 | BeautifulSoup | xml和html的解析库 | 数据处理类 | ★★★★☆ |
88 | 第三方库 | scrapy | 网络爬虫库 | 数据处理类 | ★★★★☆ |
89 | 第三方库 | pandas | 数据分析工具包 | 数据处理类 | ★★★★☆ |
90 | 第三方库 | scikit-learn | 机器学习工具包 | 机器学习类 | ★★★★★ |
91 | 第三方库 | milk | 机器学习工具包 | 机器学习类 | ★★★☆☆ |
92 | 第三方库 | tensorflow | 深度学习框架 | 机器学习类 | ★★★★☆ |
93 | 第三方库 | keras | 深度学习框架 | 机器学习类 | ★★★☆☆ |
94 | 第三方库 | nltk | 自然语言处理工具包 | 机器学习类 | ★★★☆☆ |
95 | 第三方库 | pip | 包和依赖关系管理工具 | 工具类 | ★★★★★ |
96 | 第三方库 | setuptools | 包和依赖关系管理工具 | 工具类 | ★★★☆☆ |
97 | 第三方库 | whell | whl文件打包工具 | 工具类 | ★☆☆☆☆ |
98 | 第三方库 | py2exe | python脚本打包工具 | 工具类 | ★★☆☆☆ |
99 | 第三方库 | cx_freeze | python脚本打包工具 | 工具类 | ★★★★☆ |
100 | 第三方库 | pyinstaller | python脚本打包工具 | 工具类 | ★★★★★ |