说到编程语言python,有一个著名的格言"余生太短,只用python"。如果要分析为什么会存在这么一句格言?python的语法并不简单,有复杂难懂的部分,之所以有这样一句格言,是因为python中有很多强大的模块,就像一个武器库。
Python正式由于这些模块的出现,只要引入这个模块,调用这个模块的集成函数,问题迎刃而解;不需要从头开始,节省了大量的时间。
这篇文章主要讲的是psutil模块,使用这个模块,可以获得电脑的cpu、磁盘、内存、网络以及系统的进程等信息。
由于psutil模块是第三方模块库,因此要安装这个模块库。在windows命令行工具中输入"pip install psutil",点击enter键,进行安装。
要使用这个模块库,首先引入这个模块。在python编译环境下输入"from psutil import *",就进入这个模块,可以使用这个模块的函数。
使用函数cpu_count()获得cpu的逻辑数量,使用cpu_count(logical=False)获得cpu的物理核心数量,使用函数cpu_times()获得CPU的用户/系统/空闲时间。
使用函数cpu_percent()获得cpu的使用频率。
使用函数disk_partitions()获取磁盘分区信息,使用函数disk_usage('/')获取磁盘使用情况,使用函数disk_io_counters()获取磁盘IO信息。
使用函数virtual_momory()获取电脑的物理内存信息,使用函数swap_memory()获取交换内存消息。
使用函数net_io_counters()获得网络读写包/字节个数,使用函数net_if_addrs()获得网络接口信息。
使用函数net_if_stats()获得网络接口信息,使用函数net_connections()获得网络连接信息。
使用函数pids()获取所有进程ID,使用函数Process(ID)可以获得指定进程ID的进程,并可以赋值给一个变量。
继续上面的程序,通过这个变量p可以获得该进程的相关信息。
通过函数p.cwd(),获取该进程工作目录;通过函数p.cmdline()获取进程启动的命令行;通过函数p.ppid() ,获取父进程ID。通过函数 p.parent() 获取父进程;荣国函数 p.children() ,获取子进程列表。通过函数p.status() ,获取进程状态;通过函数 p.username() ,获取 进程用户名;通过函数p.create_time() ,获取进程创建时间。 p.cpu_times() ,获取 进程使用的CPU时间;通过函数p.memory_info() ,获取 进程使用的内存;通过函数p.open_files() ,获取进程打开的文件。
函数p.connections() ,获取 进程相关网络连接;通过函数 p.num_threads() ,获取 进程的线程数量;通过函数 p.threads() ,获取所有线程信息。通过函数p.environ() ,获取进程环境变量;通过函数p.terminate() ,结束进程。
这个模块,不仅适用于windows系统,也适用于Linux、OS X、FreeBSD和Sun Solaris等操作系统。
如果要思考这么模块如何实现的,我认为是先判断操作系统的类型,然后调用该操作系统给的API就可以获得cpu、内存、网络、进程等信息。