Python的简洁性,不仅仅在于其语法简单,还有各种python库函数的支持,为大家节省了大量的时间和精力,所以网上有人戏称python的编程者为调包侠。但是你知道全球最受欢迎的python库嘛?今天小编就从PYPI网站的过去365天的python库下载量上,来看一下全球最火的22个python库。
01.Urllib3
Urllib3在过去365天中,下载量达到了9.55亿次。Urllib3是一个功能强大的,用于http客户端的python库,相比于python标准库中的urllib库,Urllib3提供了更全面的特性,包括线程安全,客户端SSL/TLS验证等,不仅如此,Urllib3广泛的被其他库依赖,有接近1200个库依赖Urllib3库。Urllib3的使用也非常的简单,如下图所示:
图中我们创建请求对象,然后请求www.baidu.com网站的信息,输出状态码和返回的数据信息。
02.six库
six库是对于python2和python3的兼容库,使用six库可以使写的代码不用进行修改就能在python2或者python3的环境下进行运行,如下图所示:
我们可以看到,six库对Python2和Python3的名字等做了统一,比如在Python2中,字符串的类型使unicode,而在python3中,字符串的类型是str,Python3叫,那么就可以使用six.string_types的类型。如果运行在Python2上,six. string_types就是unicode,如果运行在Python3上,six. string_types就是str类型。但是由于python2已经停止维护,所以six函数库的热度也将会在未来下降。
03.botocore、s3transfer库
这里botocore和s3transfer都与亚马逊网页服务(AWS)支持相关。Botocore是boto3库的基础库,而boto3则是允许使用者在编写软件时使用亚马逊服务,例如亚马逊的S3服务等。而s3transfer则是用于管理亚马逊S3传输的python库。因此同样被boto3库所依赖。
上图所示的程序中,我们首先创建一个s3服务,然后查看所有的Bucket内容,最后我们使用s3服务上传了一个图片文件。
04.requests
对于requests函数库,想必大家都不会陌生,requests库使得我们对于网页的请求变得很简单。由于requests使用更加简单,便捷,因此在实际的应用中,大家更趋向于使用requests库而不是urllib3。
上图中我们利用requests库来请求百度的首页,并输出状态码和网页源代码。
05.python-dateutil
python-dateutil模块是对于python内置库datetime的扩展和增强,示例功能如下图所示:
上述程序中,我们通过操控dateutil库中的relativedelta来实现输出去年的今天功能,并通过parse模块来将字符串转化为datetime类型的日期。
06.pip库
大家对于python库的安装,想必大都用过pip进行安装,pip是Python官方推荐的包管理工具,大家在使用pip安装的时候,可以通过pip install <特定的包>进行在线的安装,也可以先下载特定包的whl文件,然后通过pip install <xxx.whl>的方式,离线安装特定的包。而进行卸载的时候,可以通过pip uninstall <特定的包>进行卸载。如下图所示:
07.certifi库
浏览器在进行网页浏览的时候,需要在浏览器和网页服务器之间建立加密连接,而SSL就是用于这一用途,通过SSL连接可以保护在每次交互期间交换敏感的数据,例如我们通过某宝进行网页交易的时候,对于密码等信息的传递。
而在进行验证的过程中,需要在客户端安装根证书。那么certifi库的作用是什么呢,当我们去爬取网页的时候,有时候会遇到 SSL:CERTIFICATE_VERIFY_FAILED的错误,这就是SSL验证错误,遇到这种错误的话,我们可以利用certifi库进行解决,如下图所示。
上图中通过certifi软件包使用Mozilla的证书来进行证书的验证。从而解决SSL验证报错的问题。
08.idna库
idna库在我们日常的编程中,很难遇到,因为它解决的问题我们几乎遇不到。idna是一种在应用程序中的国际化域名协议,用于处理包含非ASCII字符的域名机制。由于浏览器和邮件等不支持除了ASCII码以外的其他字符,这对于很多国家,例如咱们中国、德国、法国等非英语国家来说,非常的不方便,所以idna的主要功能就是将国际的unicode域名和ASCII字符串进行相互的转换。如下图所示:
上图中我们分别实现了将国际的unicode域名转化为ASCII字符串,并实现了逆转换。
09.pyyaml
pyyaml库是针对于yaml文件进行处理的库,经常用于对于程序中的一些配置信息的读写和存储。yaml同json文件类似,也是一种配置文件。下图展示的是利用pyyaml库对yaml文件进行读写操作。
10.chardet库
对于字符串的编码问题,一直是很难处理的一个问题,虽然python提供了str和bytes的数据类型,并且可以通过encode()和decode()方法来转换字符串的编码方式,但是对于不知道编码类型的情况下,很难准确的进行解码操作。
所以chardet库就排上了用场。chardet用来对输出字符串的编码类型进行判断,并输出编码类型的判断信心和字符串的语言类型。如下图所示:
上图中,我们可以发现,使用chardet可以很方便的进行检测编码。获取到编码后,再转换为str类型,就可以方便的进行后续处理。
以上就是小编对于PYPI中下载量前十位的python库的介绍,通过上面的介绍,我们可以发现,在平时的编程中,我们很少单独import上述模块进行编程,甚至我们都没有听说过上面的某些库,而像是大家喜闻乐见的NumPy(排名23),Pandas(排名38)等库,排名却很靠后。这是为什么呢?
这里其实很好解释,因为上述的前十下载量的python库,都有很多的python库需要它们的支持,虽然模块很小,但却是很多python库不可缺少的依赖库,在安装的时候都需要被下载安装,所以它们的下载量就会非常的多,想必大家在日常的库安装时,都或多或少的有些体会。
通过小编的介绍,大家可以看到python的函数库中虽然有的不是很出名,但是却默默的发挥着自己巨大的作用,成为python编程中不可或缺的一环。真可谓:别看模块小,用处真不少!