热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python库_我常用到的python库

Python的一大特色是其丰富的模块,基本上只要你能想到的常见开发需求,都能找到别人已经实现的库直接使用,或者相关的工具框架来辅助实现。但
47b9bebb47953e99ccbcf9b626e3e41e.png

Python 的一大特色是其丰富的模块,基本上只要你能想到的常见开发需求,都能找到别人已经实现的库直接使用,或者相关的工具/框架来辅助实现。但这对于新手来说也是一个问题:这么多库,我要从哪里学起?怎么才能记住这么多库的用法?

对此我的建议:

  1. 不要把学习库作为目标。正确的学习逻辑是,去发掘可编程解决的需求,以实现功能为目标,在开发过程中去搜索去学习相关的库。否则你会陷在茫茫模块之中失去方向。
  2. 不用去死记库的用法,你也不可能记下来。你需要了解的是查找和阅读文档的方法,以及常见的开发模式。所谓开发经验,并不是你记住的内容,而是你掌握的方法。

我们编程教室在过去发表过数十个开发案例,这些案例主要用到哪些库呢?今天就来统计一下,顺便给大家整理及推荐常用的一些库。

之前有下载过文章相关代码的同学应该知道我们这个 snippet 的代码仓库,我们大部分的案例项目都在其中。下面就以这个库中的代码为参考进行统计。

0c8d42ce36143e65fe558c17b9246157.png

统计代码:

import os
from collections import Countermodules = set()
all_modules = {}
for root, dirs, files in os.walk("..", topdown&#61;False):for name in files:if name.endswith(&#39;.py&#39;):with open(root &#43; os.path.sep &#43; name) as f:for line in f:line &#61; line.lstrip()if line.startswith(&#39;from&#39;) or line.startswith(&#39;import&#39;):module &#61; line.split()[1]module &#61; module.split(&#39;.&#39;)[0] if module:modules.add(module)if root.count(os.path.sep) <&#61; 1:for m in modules:all_modules[m] &#61; all_modules.get(m, 0) &#43; 1modules &#61; set()
print(Counter(all_modules).most_common())

代码很简单&#xff0c;4个步骤&#xff1a;

  1. 遍历文件夹&#xff0c;找出所有 .py 结尾的代码文件
  2. 对代码文件中的每一行&#xff0c;判断是否以 fromimport 开头&#xff0c;是的话&#xff0c;就把它后面的模块名记下来
  3. 为了避免有的项目中重复导入一个模块影响数据&#xff0c;对于同一个项目子目录下&#xff0c;我们用 set 记录保证不重复&#xff0c;然后再添加到总的记录字典中
  4. 使用 Counter 对字典进行排序&#xff0c;找到使用次数最多的模块

最后的结果以及模块说明&#xff08;名称后是使用次数&#xff09;&#xff1a;

random - 10&#xff0c;随机数
requests - 8&#xff0c;网络请求
numpy - 8&#xff0c;高性能计算
matplotlib - 7&#xff0c;图表绘制
time - 7&#xff0c;时间
cv2 - 6&#xff0c;计算机视觉
math - 6&#xff0c;数学
os - 6&#xff0c;系统
collections - 5&#xff0c;集合
pyecharts - 4&#xff0c;图表绘制
urllib - 4&#xff0c;网络请求
datetime - 4&#xff0c;日期与时间
bs4 - 4&#xff0c;HTML文本解析
tkinter - 3&#xff0c;图形界面GUI
sys - 3&#xff0c;系统
jieba - 3&#xff0c;中文分词
pandas - 2&#xff0c;数据统计分析
scipy - 2&#xff0c;科学计算
re - 2&#xff0c;正则表达式
argparse - 2&#xff0c;命令行参数
pygame - 2&#xff0c;游戏
json - 2&#xff0c;JSON格式处理
email - 2&#xff0c;邮件
smtplib - 2&#xff0c;邮件
urllib2 - 2&#xff0c;网络请求
pyaudio - 2&#xff0c;声音
PIL - 2&#xff0c;图像处理

除了 random、time、math 这类 python 自带的基础库外&#xff0c;从以上统计可以间接看出&#xff0c;我们的案例比较多的会涉及网络数据的抓取&#xff08;requests、urllib、bs4&#xff09;、数据分析及可视化&#xff08;numpy、matplotlib、pyecharts、pandas&#xff09;、计算机视觉及图像处理&#xff08;cv2、PIL&#xff09;等方向。

对于已经学完 python 基本语法&#xff0c;想要进一步深入学习的同学&#xff0c;可根据方向重点关注以下库&#xff1a;

Web 开发&#xff1a;django / flask
网络爬虫&#xff1a;requests、bs4
数据分析&#xff1a;numpy、pandas、matplotlib
视觉及图像处理&#xff1a;cv2、PIL&#xff08;pillow&#xff09;
图形界面开发&#xff1a;tkinter / PyQT
游戏开发&#xff1a;pygame / cocos-python

不用贪多&#xff0c;找个自己感兴趣的方向&#xff0c;选一些可行的案例进行开发&#xff0c;把基本的几个库用熟了&#xff0c;这个过程你得到成长就会很多。写代码的目的是解决问题&#xff0c;调用库只是实现的手段&#xff0c;千万不要本末倒置了。

统计的代码也上传了仓库&#xff0c;需要的话可在公众号&#xff08;Crossin的编程教室&#xff09;回复关键字 模块


════

其他文章及回答&#xff1a;

如何自学Python | 新手引导 | 一图学Python | 智能防挡弹幕 | 红包提醒 | 流浪地球

欢迎搜索及关注&#xff1a;Crossin的编程教室



推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • MySQL笔记_MySQL笔记1|数据库17问17答
    本文由编程笔记#小编为大家整理,主要介绍了MySQL笔记1|数据库17问17答相关的知识,希望对你有一定的参考价值。 ... [详细]
  • R语言拼接字符串_paste的用法说明
    这篇文章主要介绍了R语言拼接字符串_paste的用法说明,具有很好的参考价值,希望对大家有所帮助。一 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • d3dx9_26.dll极品飞车9修复工具下载及修复教程
    本文介绍了d3dx9_26.dll文件的修复工具下载和修复教程,解释了该dll文件的作用和安装方法,同时提供了其他dll文件下载安装的方法。文章涵盖了3d、windows、p2p、dll、visual studio等知识点,并由未来可期1212投稿。希望该技术和经验能帮到你解决dll文件相关技术问题。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 上一章讲了如何制作数据集,接下来我们使用mmcls来实现多标签分类。 ... [详细]
  • python3下载mapbox矢量切片通过观察mapbox的页面开发者工具里的network可以发现,打开矢量切片和字体切片pbf和prite图标的链接, ... [详细]
author-avatar
手机用户2602889447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有