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的所有功能。
指挥小海龟绘制一个长方形的简单代码:
从程序代码可以看出,海龟绘图就是指挥海龟前进、转向,海龟移动的轨迹就是绘制的线条。要绘制一个长方形,只需要让海龟前进、右转90度,反复4次。
绘图完成后,记得调用
done()
函数,让窗口进入消息循环,等待被关闭。否则,由于Python进程会立刻结束,将导致窗口被立刻关闭。turtle
包本身只是一个绘图库,但是配合Python代码,就可以绘制各种复杂的图形。例如,通过循环绘制5个五角星:使用递归,可以绘制出非常复杂的图形,绘制一棵分型树:
psutil(第三方库)
在Linux下,有许多系统命令可以时刻监控系统运行的状态,如
ps
,top
,free
等等。要获取这些系统信息,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
提供了一系列绘图方法,让我们可以直接绘图。比如要生成字母验证码图片:用随机颜色填充背景,再画上文字,最后对图像进行模糊,得到验证码图片如下:
如果运行的时候报错:
IOError: cannot open resource
这是因为PIL无法定位到字体文件的位置,可以根据操作系统提供绝对路径,比如:
'/Library/Fonts/Arial.ttf'