Python 的一大特點是其豐富的模塊,基本上只要你能想到的常見開發需求,都能找到別人已經實現的庫直接使用,或者相關的工具/框架來輔助實現。但這對於新手來講也是一個問題:這麼多庫,我要從哪裏學起?怎麼才能記住這麼多庫的用法?python
對此個人建議:正則表達式
咱們編程教室在過去發表過數十個開發案例,這些案例主要用到哪些庫呢?今天就來統計一下,順便給你們整理及推薦經常使用的一些庫。django
以前有下載過文章相關代碼的同窗應該知道咱們這個 snippet 的代碼倉庫,咱們大部分的案例項目都在其中。下面就以這個庫中的代碼爲參考進行統計。編程
統計代碼:json
import os
from collections import Counter
modules = set()
all_modules = {}
for root, dirs, files in os.walk("..", topdown=False):
for name in files:
if name.endswith('.py'):
with open(root + os.path.sep + name) as f:
for line in f:
line = line.lstrip()
if line.startswith('from') or line.startswith('import'):
module = line.split()[1]
module = module.split('.')[0] if module:
modules.add(module)
if root.count(os.path.sep) <= 1:
for m in modules:
all_modules[m] = all_modules.get(m, 0) + 1
modules = set()
print(Counter(all_modules).most_common())
複製代碼
代碼很簡單,4個步驟:flask
.py
結尾的代碼文件from
或 import
開頭,是的話,就把它後面的模塊名記下來set
記錄保證不重複,而後再添加到總的記錄字典中Counter
對字典進行排序,找到使用次數最多的模塊最後的結果以及模塊說明(名稱後是使用次數):網絡
random - 10,隨機數
requests - 8,網絡請求
numpy - 8,高性能計算
matplotlib - 7,圖表繪製
time - 7,時間
cv2 - 6,計算機視覺
math - 6,數學
os - 6,系統
collections - 5,集合
pyecharts - 4,圖表繪製
urllib - 4,網絡請求
datetime - 4,日期與時間
bs4 - 4,HTML文本解析
tkinter - 3,圖形界面GUI
sys - 3,系統
jieba - 3,中文分詞
pandas - 2,數據統計分析
scipy - 2,科學計算
re - 2,正則表達式
argparse - 2,命令行參數
pygame - 2,遊戲
json - 2,JSON格式處理
email - 2,郵件
smtplib - 2,郵件
urllib2 - 2,網絡請求
pyaudio - 2,聲音
PIL - 2,圖像處理echarts
除了 random、time、math 這類 python 自帶的基礎庫外,從以上統計能夠間接看出,咱們的案例比較多的會涉及網絡數據的抓取(requests、urllib、bs4)、數據分析及可視化(numpy、matplotlib、pyecharts、pandas)、計算機視覺及圖像處理(cv二、PIL)等方向。框架
對於已經學完 python 基本語法,想要進一步深刻學習的同窗,可根據方向重點關注如下庫:dom
Web 開發:django / flask
網絡爬蟲:requests、bs4
數據分析:numpy、pandas、matplotlib
視覺及圖像處理:cv二、PIL(pillow)
圖形界面開發:tkinter / PyQT
遊戲開發:pygame / cocos-python
不用貪多,找個本身感興趣的方向,選一些可行的案例進行開發,把基本的幾個庫用熟了,這個過程你獲得成長就會不少。寫代碼的目的是解決問題,調用庫只是實現的手段,千萬不要本末倒置了。
統計的代碼也上傳了倉庫,須要的話可在公衆號(Crossin的編程教室)回覆關鍵字 模塊
════
其餘文章及回答:
如何自學Python | 新手引導 | 一圖學Python | 智能防擋彈幕 | 紅包提醒 | 流浪地球
歡迎搜索及關注:Crossin的編程教室