20个必不可少的Python库也是基本的第三方库
读者您好。今天我将介绍20个属于我常用工具的Python库,我相信你看完之后也会觉得离不开它们。他们是:
- Requests.Kenneth Reitz写的最富盛名的http库。每个Python程序员都应该有它。
- Scrapy.如果你从事爬虫相关的工作,那么这个库也是必不可少的。用过它之后你就不会再想用别的同类库了。
- wxPython.Python的一个GUI(图形用户界面)工具。我主要用它替代tkinter。你一定会爱上它的。
- Pillow.它是PIL(Python图形库)的一个友好分支。对于用户比PIL更加友好,对于任何在图形领域工作的人是必备的库。
- SQLAlchemy.一个数据库的库。对它的评价褒贬参半。是否使用的决定权在你手里。
- BeautifulSoup.我知道它很慢,但这个xml和html的解析库对于新手非常有用。
- Twisted.对于网络应用开发者最重要的工具。它有非常优美的api,被很多Python开发大牛使用。
- NumPy.我们怎么能缺少这么重要的库?它为Python提供了很多高级的数学方法。
- SciPy.既然我们提了NumPy,那就不得不提一下SciPy。这是一个Python的算法和数学工具库,它的功能把很多科学家从Ruby吸引到了Python。
- matplotlib.一个绘制数据图的库。对于数据科学家或分析师非常有用。
- Pygame.哪个程序员不喜欢玩游戏和写游戏?这个库会让你在开发2D游戏的时候如虎添翼。
- Pyglet.3D动画和游戏开发引擎。非常有名的Python版本Minecraft就是用这个引擎做的。
- pyQT.Python的GUI工具。这是我在给Python脚本开发用户界面时次于wxPython的选择。
- pyGtk.也是Python GUI库。很有名的Bittorrent客户端就是用它做的。
- Scapy.用Python写的数据包探测和分析库。
- pywin32.一个提供和windows交互的方法和类的Python库。
- nltk.自然语言工具包。我知道大多数人不会用它,但它通用性非常高。如果你需要处理字符串的话,它是非常好的库。但它的功能远远不止如此,自己摸索一下吧。
- nose.Python的测试框架。被成千上万的Python程序员使用。如果你做测试导向的开发,那么它是必不可少的。
- SymPy.SymPy可以做代数评测、差异化、扩展、复数等等。它封装在一个纯Python发行版本里。
- IPython.怎么称赞这个工具的功能都不为过。它把Python的提示信息做到了极致。包括完成信息、历史信息、shell功能,以及其他很多很多方面。一定要研究一下它。
1、psutil是一个跨平台库(http://code.google.com/p/psutil/)
能够实现获取系统运行的进程和系统利用率(内存,CPU,磁盘,网络等),主要用于系统监控,分析和系统资源及进程的管理。
2、IPy(http://github.com/haypo/python-ipy),辅助IP规划。
3、dnspython(http://dnspython.org)Python实现的一个DNS工具包。
4、difflib:difflib作为Python的标准模块,无需安装,作用是对比文本之间的差异。
5、filecmp:系统自带,可以实现文件,目录,遍历子目录的差异,对比功能。
6、smtplib:发送电子邮件模块
7、pycurl(http://pycurl.sourceforge.net)是一个用C语言写的libcurl Python实现,功能强大,支持的协议有:FTP,HTTP,HTTPS,TELNET等,可以理解为Linux下curl命令功能的Python封装。
8、XlsxWriter:操作Excel工作表的文字,数字,公式,图表等。
9、rrdtool:用于跟踪对象的变化,生成这些变化的走走势图
10、scapy(http://www.wecdev.org/projects/scapy/)是一个强大的交互式数据包处理程序,它能够对数据包进行伪造或解包,包括发送数据包,包嗅探,应答和反馈等功能。
11、Clam Antivirus免费开放源代码防毒软件,pyClamad,可以让Python模块直接使用ClamAV病毒扫描守护进程calmd。
12、pexpect:可以理解成Linux下expect的Python封装,通过pexpect我们可以实现对ssh,ftp,passwd,telnet等命令行进行自动交互,而无需人工干涉来达到自动化的目的。
13、paramiko是基于Python实现的SSH2远程安装连接,支持认证及密钥方式。可以实现远程命令执行,文件传输,中间SSH代理等功能。相对于Pexpect,封装的层次更高,更贴近SSH协议的功能,官网地址:http://paramiko.org(依赖:Crypto,Ecdsa,Python开发包python-devel)
14、fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括命令执行,文件上传,下载及完整执行日志输出等功能。Fabric在paramiko的基础上做了更高一层的封装,操作起来更加简单。官网地址:http://www.fabfile.org(依赖setuptools,Crypto,paramiko包支持)
15、CGIHTTPRequestHandler实现对CGI的支持。
16、ansible(http://www.ansibleworks.com/)一种集成IT系统的配置管理,应用部署,执行特定任务的开源平台。基于Python实现,由Paramiko和PyYAML两个关键模块构建。Ansibl与Saltstack最大的区别是Ansible无需在被控主机上部署任何客户端,默认直接通过SSH通道进行远程命令执行或下发功能。
17、YAML:是一种用来表达数据序列的编程语言。
18、playbook:一个非常简单的配置管理和多主机部署系统。
19、saltstack(http://saltstack.com)是一个服务器基础架构集中化管理平台,一般可以理解为简化版的puppet和加强版的func。Saltstack基于Python语言实现,结合轻量级消息队列ZeroMQ,与Python每三方模块(Pyzmq,PyCrypto,Pyjinja2,python-msgpack和PyYAML等)构建。
20、func,为解决集群管理,监控问题需设计开发的系统管理基础框架。
- http://docs.python.org/2/library/itertools.html
- http://docs.python.org/2/library/functools.html
- re 正则
- http://docs.python.org/2/library/subprocess.html
- pdb 调试
- traceback 调试
- pprint 漂亮的输出
- logging 日志
- threading和multiprocessing 多线程
- urllib/urllib2/httplib http库,httplib底层一点,推荐第三方的库requests
- os/sys 系统,环境相关
- Queue 队列
- pickle/cPickle 序列化工具
- hashlib md5, sha等hash算法
- cvs
- json/simplejson python的json库,据so上的讨论和benchmark,simplejson的性能要高于json
- timeit 计算代码运行的时间等等
- cProfile python性能测量模块
- glob 类似与listfile,可以用来查找文件
- atexit 有一个注册函数,可用于正好在脚本退出运行前执行一些代码
- dis python 反汇编,当对某条语句不理解原理时,可以用dis.dis 函数来查看代码对应的python 解释器指令等等。
3th libs:
- https://github.com/paramiko/paramiko
- https://pypi.python.org/pypi/selenium
- http://lxml.de/
- https://pypi.python.org/pypi/mechanize/
- https://pypi.python.org/pypi/pycurl
- http://docs.fabfile.org/en/1.8/
- https://github.com/martinblech/xmltodict
- Requests: HTTP for Humans
- http://flask.pocoo.org/python
- ipdb 调试神器,同时推荐ipython!结合ipython使用
- redis redis python接口
- pymongo mongodbpython接口
- http://www.pythonware.com/products/pil/
- http://www.makotemplates.org/
- numpy , scipy 科学计算
- matplotlib 画图
- scrapy 爬虫
- django/tornado/web.py/web2py/uliweb/flask/twisted/bottle/cherrypy.等等 python web框架/服务器
- sh 1.08 ― sh v1.08 documentation
环境管理
管理 Python 版本和环境的工具
包管理
管理包和依赖的工具。
包仓库
本地 PyPI 仓库服务和代理。
分发
打包为可执行文件以便分发。
构建工具
将源码编译成软件。
交互式解析器
交互式 Python 解析器。
文件
文件管理和 MIME(多用途的网际邮件扩充协议)类型检测。
日期和时间
操作日期和时间的类库。
文本处理
用于解析和操作文本的库。
特殊文本格式处理
一些用来解析和操作特殊文本格式的库。
自然语言处理
用来处理人类语言的库。
文档
用以生成项目文档的库。
配置
用来保存和解析配置的库。
命令行工具
用于创建命令行程序的库。
下载器
用来进行下载的库.
图像处理
用来操作图像的库.
OCR
光学字符识别库。
音频
用来操作音频的库
视频
用来操作视频和GIF的库。
地理位置
地理编码地址以及用来处理经纬度的库。
HTTP
使用HTTP的库。
数据库
Python实现的数据库。
数据库驱动
用来连接和操作数据库的库。
ORM
实现对象关系映射或数据映射技术的库。
Web 框架
全栈 web 框架。
https://github.com/humiaozuzu/awesome-flask系列
权限
允许或拒绝用户访问数据或功能的库。
CMS
内容管理系统
电子商务
用于电子商务以及支付的框架和库。
RESTful API
用来开发RESTful APIs的库
验证
实现验证方案的库。
模板引擎
模板生成和词法解析的库和工具。
Queue
处理事件以及任务队列的库。
搜索
对数据进行索引和执行搜索查询的库和软件。
动态消息
用来创建用户活动的库。
资源管理
管理、压缩、缩小网站资源的工具。
缓存
缓存数据的库。
电子邮件
用来发送和解析电子邮件的库。
国际化
用来进行国际化的库。
URL处理
解析URLs的库
http://bit.ly
HTML处理
处理 HTML和XML的库。
网络站点爬取
爬取网络站点的库
网页内容提取
用于进行网页内容提取的库。
表单
进行表单操作的库。
数据验证
数据验证库。多用于表单验证。
反垃圾技术
帮助你和电子垃圾进行战斗的库。
标记
用来进行标记的库。
管理面板
管理界面库。
静态站点生成器
静态站点生成器是一个软件,它把文本和模板作为输入,然后输出HTML文件。
进程
操作系统进程启动及通信库。
并发和并行
用以进行并发和并行操作的库。
网络
用于网络编程的库。
WebSocket
帮助使用WebSocket的库。
WSGI 服务器
兼容 WSGI 的 web 服务器
RPC 服务器
兼容 RPC 的服务器。
密码学
图形用户界面
用来创建图形用户界面程序的库。
游戏开发
超赞的游戏开发库。
日志
用来生成和操作日志的库。
测试
进行代码库测试和生成测试数据的库。
代码分析和Lint工具
进行代码分析,解析和操作代码库的库和工具。
调试工具
用来进行代码调试的库。
科学技术和数据分析
用来进行科学计算和数据分析的库。
数据可视化
进行数据可视化的库。 参见: awesome-javascript。
计算机视觉
计算机视觉库。
机器学习
机器学习库。 参见: awesome-machine-learning.
MapReduce
MapReduce 框架和库。
函数式编程
使用 Python 进行函数式编程。
第三方 API
用来访问第三方 API的库。 参见: List of Python API Wrappers and Libraries。
DevOps 工具
用于 DevOps 的软件和库。
任务调度
任务调度库。
外来函数接口
使用外来函数接口的库。
高性能
让 Python 更快的库。
微软的 Windows平台
在 Windows 平台上进行 Python 编程。
网络可视化和SDN
用来进行网络可视化和SDN(软件定义网络)的工具和库。
硬件
用来对硬件进行编程的库。
兼容性
帮助从 Python 2 向 Python 3迁移的库。
杂项
不属于上面任何一个类别,但是非常有用的库。
算法和设计模式
Python 实现的算法和设计模式。
编辑器插件
编辑器和 IDE 的插件
集成开发环境
流行的 Python 集成开发环境。
服务
在线工具和简化开发的 API 。
持续集成
参见: awesome-CIandCD.
代码质量
资源
在这里可以找到新的 Python 库。
网站
周刊
Twitter
@PythonWeekly
原生:
系统调用的subprocess
多线程的multiprocessing
系统管理推荐fabric和salt
WEB框架推荐flask和tornado
ORM推荐SQLAlchemy
Tornado: 和其他Python框架的架构可谓大相径庭,Request的处理方式也很舒服,特别适合REST,谁用谁知道
Mako: 个人认为是最好的Template,简单 性能好
SQLAlchemy: 快一统ORM了吧
Quixote:其实还是蛮好用的
pyQuery: 用jQuery的语法写爬虫 略爽
我希望你喜欢今天的文章。请在评论区留下你的看法。如果你觉得有哪个库被遗漏了请在评论里告诉我,我会把它加上去。请留意下一期的文章。
原文:https://www.cnblogs.com/jiangchunsheng/p/9275881.html