其他常用模块
2021-7-20
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property

 
 

turtle

在1966年,Seymour Papert和Wally Feurzig发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个小海龟(turtle)在屏幕上绘图。海龟绘图(Turtle Graphics)后来被移植到各种高级语言中,Python内置了turtle库,基本上100%复制了原始的Turtle Graphics的所有功能。
指挥小海龟绘制一个长方形的简单代码:
 
 
 
notion image
从程序代码可以看出,海龟绘图就是指挥海龟前进、转向,海龟移动的轨迹就是绘制的线条。要绘制一个长方形,只需要让海龟前进、右转90度,反复4次。
调用width()函数可以设置笔刷宽度,调用pencolor()函数可以设置颜色。更多操作请参考turtle库的说明。
绘图完成后,记得调用done()函数,让窗口进入消息循环,等待被关闭。否则,由于Python进程会立刻结束,将导致窗口被立刻关闭。
turtle包本身只是一个绘图库,但是配合Python代码,就可以绘制各种复杂的图形。例如,通过循环绘制5个五角星:
notion image
使用递归,可以绘制出非常复杂的图形,绘制一棵分型树:
notion image
 

psutil(第三方库)

在Linux下,有许多系统命令可以时刻监控系统运行的状态,如pstopfree等等。要获取这些系统信息,Python可以通过subprocess模块调用并获取结果。但这样做显得很麻烦,尤其是要写很多解析代码。
在Python中获取系统信息的另一个好办法是使用psutil(process and system utilities)这个第三方模块。不仅可以通过一两行代码实现系统监控,还可以跨平台使用,支持Linux/UNIX/OSX/Windows等,是系统管理员和运维小伙伴不可或缺的必备模块。

获取CPU信息

 

获取内存信息

使用psutil获取物理内存和交换内存信息,分别使用:
 

获取磁盘信息

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

获取网络信息

psutil可以获取网络接口和网络连接信息:
要获取当前网络连接信息,使用net_connections()psutil.net_connections()
可能会得到一个AccessDenied错误,原因是psutil获取信息也是要走系统接口,而获取网络连接信息需要root权限,这种情况下,可以退出Python交互环境,用sudo重新启动

获取进程信息

通过psutil可以获取到所有进程的详细信息:
获取网络连接类似,获取一个root用户的进程需要root权限,启动Python交互环境或者.py文件时,需要sudo权限。
psutil还提供了一个test()函数,可以模拟出ps命令的效果:
 

Pillow(第三方库)

来看看最常见的图像缩放操作,只需三四行代码:
其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。
比如,模糊效果也只需几行代码:
PIL的ImageDraw提供了一系列绘图方法,让我们可以直接绘图。比如要生成字母验证码图片:
用随机颜色填充背景,再画上文字,最后对图像进行模糊,得到验证码图片如下:
notion image
如果运行的时候报错:IOError: cannot open resource
这是因为PIL无法定位到字体文件的位置,可以根据操作系统提供绝对路径,比如:'/Library/Fonts/Arial.ttf'
  • Python
  • urllib、XML、HTMLParser、requests初识Pyqt5
    目录