获取CPU信息
运行示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础 获取系统信息 psutil
import psutil
# CPU 逻辑数量 4 代表四核非超线程
print("CPU 逻辑数量 %s" % psutil.cpu_count())
# CPU 物理核心 2 说明是双核超线程
print("CPU 物理核心 %s" % psutil.cpu_count(logical = False))
# scputimes(user=34319.75390625, system=18179.125, idle=934659.6875, interrupt=3766.7846422195435, dp
print("CPU 运行时间 " ,psutil.cpu_times())
print("CPU 使用率 " ,psutil.cpu_percent(interval=1, percpu=True))
运行结果
D:\PythonProject\sustudy>python main.py
CPU 逻辑数量 4
CPU 物理核心 2
CPU 运行时间 scputimes(user=34333.19921875, system=18188.625, idle=935126.0, interrupt=3769.0310258865356, dpc=3191.2032051086426)
CPU 使用率 [4.5, 10.3, 1.5, 0.0]
获取内存信息
运行示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础 获取系统信息 psutil
import psutil
# 获取内存信息
print("系统物理内存", psutil.virtual_memory())
print("系统交互内存", psutil.swap_memory())
运行结果
D:\PythonProject\sustudy>python main.py
系统物理内存 svmem(total=8469057536, available=4318093312, percent=49.0, used=4150964224, free=4318093312)
系统交互内存 sswap(total=16936165376, used=4739903488, free=12196261888, percent=28.0, sin=0, sout=0)
这里可以看总内存,已经使用内存,剩余内存
获取磁盘信息
运行示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础 获取系统信息 psutil
import psutil
# 获取磁盘信息
print("磁盘分区信息", psutil.disk_partitions())
print("磁盘使用情况", psutil.disk_usage("/"))
print("磁盘IO情况", psutil.disk_io_counters())
运行结果
D:\PythonProject\sustudy>python main.py
磁盘分区信息 [sdiskpart(device='C:\\', mountpoint='C:\\', fstype='NTFS', opts='rw,fixed'), sdiskpart(device='D:\\', mountpoint='D:\\', fstype='NTFS',
opts='rw,fixed'), sdiskpart(device='E:\\', mountpoint='E:\\', fstype='NTFS', opts='rw,fixed')]
磁盘使用情况 sdiskusage(total=214748360704, used=111907840000, free=102840520704, percent=52.1)
磁盘IO情况 sdiskio(read_count=3072225, write_count=3408125, read_bytes=47211873792, write_bytes=110651502080, read_time=10599, write_time=3998)
获取网络信息
运行示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础 获取系统信息 psutil
import psutil
# 获取网络信息
print("获取网络读写字节/包的个数", psutil.net_io_counters())
print("获取网络接口信息", psutil.net_if_addrs())
print("获取网络接口状态", psutil.net_if_stats())
print("获取当前网络连接信息", psutil.net_connections())
获取进程信息
运行示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础 获取系统信息 psutil
import psutil
# 获取进程信息
print("所有进程ID", psutil.pids())
# 9660 是上述pids的其中一个
p = psutil.Process(9660)
print("进程名称", p.name())
print("进程exe路径", p.exe())
print("进程工作目录", p.cwd())
print("进程启动的命令行", p.cmdline())
print("父进程ID", p.ppid())
print("父进程", p.parent())
print("子进程列表", p.children())
print("进程状态", p.status())
print("进程用户名", p.username())
print("进程创建时间", p.create_time())
print("进程使用的CPU时间", p.cpu_times())
print("进程使用的内存", p.memory_info())
print("进程打开的文件", p.open_files())
print("进程相关网络连接", p.connections())
print("进程的线程数量", p.num_threads())
print("进程环境变量", p.environ())
运行结果
进程名称 putty.exe
进程exe路径 C:\Users\fadi.su\Desktop\pu
进程工作目录 C:\Users\fadi.su\Desktop
进程启动的命令行 ['C:\\Users\\fadi.su\\
父进程ID 3204
父进程 psutil.Process(pid=3204, name='e
子进程列表 []
进程状态 running
进程用户名 LAVASZX\Fadi.Su
进程创建时间 1513823826.0
进程使用的CPU时间 pcputimes(user=6.8328
进程使用的内存 pmem(rss=20713472, vms=1
ak_nonpaged_pool=28680, nonpaged_pool=2
进程打开的文件 [popenfile(path='C:\\Win
进程相关网络连接 [pconn(fd=-1, family=<
ort=22), status='ESTABLISHED')]
进程的线程数量 6
进程环境变量 {'#ENVTSLOGSSS3204': '3884
: 'C:\\Program Files (x86)\\Subversion\
x86)\\Common Files', 'COMMONPROGRAMFILE
PUTERNAME': 'SW-SUHUAZHI', 'COMSPEC': '
Ps命令
运行示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Python基础 获取系统信息 psutil
import psutil
# Ps命令
print("Ps命令")
psutil.test()
运行结果
D:\PythonProject\sustudy>python main.py
Ps命令
USER PID %MEM VSZ RSS TTY START TIME COMMAND
SYSTEM 0 ? ? 24 ? Dec19 22:17 System Idle Process
SYSTEM 4 0.2 136 12648 ? Dec19 32:20 System
340 ? 536 1120 ? Dec19 00:00 smss.exe
368 0.2 11348 18488 ? Dec19 09:39 svchost.exe
516 0.1 3100 6644 ? Dec19 00:08 csrss.exe
576 0.1 6500 9856 ? Dec19 00:08 svchost.exe
668 0.2 24516 19636 ? Dec19 00:39 svchost.exe
700 3.3 272656 273308 ? Dec19 15:29 svchost.exe
732 0.5 32296 44132 ? Dec19 01:17 svchost.exe
820 0.1 3372 6460 ? Dec19 00:16 wininit.exe
结语
psutil使得Python程序获取系统信息变得易如反掌。
psutil还可以获取用户信息、Windows服务等很多有用的系统信息,具体请参考psutil的官网:https://github.com/giampaolo/psutil