psutil模块可以跨平台使用,支持Linux/UNIX/OSX/Windows等,它主要用来做系统监控,性能分析,进程管理等。
在Python中,我们可以使用psutil这个第三方模块去获取信息的信息。psutil模块可以跨平台使用,支持Linux/UNIX/OSX/Windows等,它主要用来做系统监控,性能分析,进程管理等。
安装psutil模块也非常简单,在cmd命令行下输入如下命令:
pip install psutil
实例:
import psutil
# CPU逻辑数量
print(psutil.cpu_count())
# CPU物理核心
print(psutil.cpu_count(logical=False))
#获取内存信息
print(psutil.virtual_memory())
#获取磁盘信息
print(psutil.disk_partitions())
#获取磁盘使用情况
print(psutil.disk_usage('/mnt/sdc'))
#获取网络读写字节/包的个数
print(psutil.net_io_counters())
#获取网络接口信息
print(psutil.net_if_addrs())
#获取当前网络连接信息
#print(psutil.net_connections())
#获取所有进程ID
print(psutil.pids())
#获取指定进程ID=5121,其实就是当前Python交互环境
p = psutil.Process(5121)
#获取进程名称
print(p.name())
#获取父进程ID
print(p.ppid())
#获取进程的用户名
print(p.username())
#进程的线程数量
print(p.num_threads())
运行结果:
4
2
svmem(total=8200474624, available=5517934592, percent=32.7, used=2309992448, free=317157376, active=3664752640, inactive=3654070272, buffers=187805696, cached=5385519104, shared=59301888, slab=289255424)
[sdiskpart(device='/dev/vda2', mountpoint='/', fstype='ext4', opts='rw,relatime,data=ordered', maxfile=255, maxpath=4096), sdiskpart(device='/dev/vdb', mountpoint='/mnt/sdc', fstype='ext4', opts='rw,relatime,data=ordered', maxfile=255, maxpath=4096)]
sdiskusage(total=84417077248, used=520986624, free=79584346112, percent=0.7)
snetio(bytes_sent=181586323, bytes_recv=3720224418, packets_sent=1204482, packets_recv=1389674, errin=0, errout=0, dropin=0, dropout=0)
{'lo': [snicaddr(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', netmask='255.0.0.0', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 10>, address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_PACKET: 17>, address='00:00:00:00:00:00', netmask=None, broadcast=None, ptp=None)], 'eth0': [snicaddr(family=<AddressFamily.AF_INET: 2>, address='192.168.1.58', netmask='255.255.255.0', broadcast='192.168.1.255', ptp=None), snicaddr(family=<AddressFamily.AF_INET6: 10>, address='fe80::f816:3eff:fe07:ad48%eth0', netmask='ffff:ffff:ffff:ffff::', broadcast=None, ptp=None), snicaddr(family=<AddressFamily.AF_PACKET: 17>, address='fa:16:3e:07:ad:48', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', ptp=None)]}
[1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, 48, 49, 57, 59, 60, 62, 63, 76, 114, 119, 257, 261, 262, 263, 264, 271, 272, 284, 285, 291, 346, 350, 387, 410, 489, 499, 509, 538, 541, 544, 591, 593, 681, 688, 779, 857, 862, 884, 1184, 1191, 1225, 1233, 1256, 1329, 5121, 5122, 7797, 9348, 9374, 9381, 9707, 9712, 9811, 9827, 10102, 10193, 10195, 14872, 14874, 14913, 14914, 14930, 14942, 14976, 14983, 15000, 15007, 15028, 17244, 17245, 19274, 22899, 23869, 23878, 23879, 32112]
nginx
1
root
1
小结: psutil使得Python程序获取系统信息变得易如反掌。psutil还可以获取用户信息、Windows服务等很多有用的系统信息,具体请参考psutil的官网。