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的官方文档。
领取专属 10元无门槛券
私享最新 技术干货