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的编程教室