您的位置:首页 > 编程语言 > Python开发

Python基础 获取系统信息 psutil

2017-12-22 11:35 405 查看

获取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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息