在知乎和CSDN的圈子裏,經常看到、聽到一些 python 初學者說,學完基礎語法後,不知道該學什麼,學了也不知道怎麼用,一臉的茫然。近日,CSDN的公衆號推送了一篇博客,題目叫做《迷思:Python 學到什麼程度可以面試工作?》,真實反映了 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腳本打包工具 | 工具類 | ★★★★★ |