首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python中四个常用的第三方库

Pillow图像处理库

Python上原本的图像处理库叫PIL——Python Imaging Library。但是因为PIL仅支持Python2.7,而且缺乏维护,所以一些志愿者在PIL的基础上创建了Pillow,支持Python3.x,还加入了许多新特性。

由于Pillow是第三方库,所以需要安装,才能引入。

常见的图像缩放操作:

图片模糊也很简单:

再如复杂一些的功能,生成字母验证码图片:

用随机颜色填充北京,再画上文字,最后对图像进行模糊。如果报错 ,可能是因为PIL无法定位到字体文件的位置,可以提供绝对路径。

Pillow非常强大,全部的功能和用法都可以直接参考官方文档。

requests网络库

Python虽然内置了urllib模块,用于访问网络资源,但是用起来比较麻烦,而且缺少很多功能。因此使用第三方库requests更方便一些。

GET访问页面:

对于带参数的URL,可以传入一个dict作为params参数。

传入headers参数,通过一个dict传入:

发送POST请求,传入data参数作为请求的数据。

requests默认使用application/x-www-form-urlencoded对POST数据编码。如果要传递JSON数据,可以直接传入json参数:

上传文件需要更复杂的编码格式,但是requests把它简化成files参数:

注意务必使用'rb'即二进制模式读取,这样获取的bytes长度才是文件的长度。

如果使用put()、delete(),就可以以PUT或DELETE方式请求资源。

其他的功能也非常简单易用,比如获取响应头:

requests对Cookie做了特殊处理,使得我们不必解析Cookie就可以轻松获取指定的Cookie:

要在请求中传入Cookie,只需准备一个dict传入cookies参数:

如果要指定超时,传入以秒为单位的timeout参数:

chardet字符串编码检测库

对于未知编码的bytes,要把它转换成str,需要先“猜测”编码。chardet这个第三方库可以用来检测编码,简单易用。

当我们拿到一个bytes时,就可以对其检测编码。用chardet检测编码,只需要一行代码:

检测出的编码是ascii,注意到还有个confidence字段,表示检测的概率是1.0(即100%)。

我们来试试检测GBK编码的中文:

检测的编码是GB2312,注意到GBK是GB2312的超集,两者是同一种编码,检测正确的概率是74%,language字段指出的语言是'Chinese'。

对UTF-8编码进行检测:

我们再试试对其他语言,比如日文进行检测:

chardet检测编码,使用简单。获取到编码后,再转换为str,就可以方便后续处理。

psutil获取系统信息

Python中可以使用psutil获得系统信息,psutil指的是process and system utilities。

获取CPU信息:

统计CPU的用户/系统/空闲时间:

再实现类似top命令的CPU使用率,每秒刷新一次,累计10次:

获取内存信息:

获取磁盘信息,可以获取磁盘分区、磁盘使用率和磁盘IO信息:

获取网络接口和网络连接信息:

要获取当前网络连接信息,使用net_connections(),但是可能会得到一个AccessDenied错误,原因是psutil获取信息也是要走系统接口,而获取网络连接信息需要root权限,

获取进程信息:

psutil还提供了一个test()函数,可以模拟出 命令的效果。更多的功能也可以参考psutil的官方文档。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180407G06I7800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券