Python_Windows系统编程_深入浅出_下篇

本文深入探讨Python在Windows系统编程的应用,包括判断操作系统版本、使用psutil进行系统监控、通过pywin32实现事件查看器功能以及切换用户登录身份。讲解了os、sys、platform模块以及扩展库psutil和pywin32在系统运维中的重要作用,如CPU、内存、磁盘、网络状态的监测和系统管理。
摘要由CSDN通过智能技术生成

上篇博客记录了Python的一些常用系统模块和其用法,包括注册表编程,创建可执行文件,调用外部文件等系统操作,这一节记录Windows系统编程的其他部分。

4. 判断操作系统的版本

某些情况下,程序可能依赖于特定版本操作系统中的功能或者希望程序在不同版本的操作系统中有不同的表现,因此能够在程序运行时获知操作系统的版本就变得非常有必要。Python支持使用多种不同的方法来获取版本的操作信息。

  • 使用os模块
import os
print(os.popen('ver').read())
Microsoft Windows [版本 10.0.17134.1365]
  • 使用sys模块
import sys
print(sys.getwindowsversion())
sys.getwindowsversion(major=10, minor=0, build=17134, platform=2, service_pack='')
  • 使用platform模块
import platform
print(platform.platform())
Windows-10-10.0.17134-SP0

Windows管理规范(WMI)是Windows的一项核心技术,它以公共信息模型对象管理器为基础,是一个描述Windows操作系统构成单元的对象数据库。WMI是Windows的核心组件,通过编写WMI脚本和应用程序可以获取计算机系统、软件和硬件信息,还可以对计算机进行管理,比如开关机,重启计算机等

import wmi
wmiShell = wmi.WMI()
print(wmiShell.Win32_OperatingSystem()[0].Caption)
Microsoft Windows 10 教育版

5. 系统运维

系统运维涉及的内容非常广泛,包括文件系统、数据库、用户账号的维护,任务调度与分配,CPU、内存、网络带宽、硬盘空间、IP地址等资源的分配与运行状态监测,等等。

  • Python标准库os提供了大量可用于系统运维的函数,如下表所示。另外,Python标准库sys,platform以及扩展库psutil等也提供了很多支持系统运维的功能。
    在这里插入图片描述

5.1 Python扩展库psutil

跨平台的Python扩展库psutil可以用来查询进程或CPU,内存、硬盘以及网络等系统资源占用率等信息,常用于系统运行状态检测和维护。可以使用pip工具安装该库

  • 查看CPU信息
import psutil
psutil.cpu_count() # 查看CPU核数
8
psutil.cpu_count(logical=False) # 查看物理CPU个数
4
psutil.cpu_percent() # 查看CPU利用率
5.5
psutil.cpu_percent(percpu=True) # 查看每个CPU的使用率
[9.6, 4.6, 6.8, 2.9, 5.3, 2.6, 4.1, 7.5]
psutil.cpu_times() # 查看CPU时间分配情况
scputimes(user=213684.48437499997, system=91249.70312499953, idle=2627046.046875, interrupt=5928.90625, dpc=2668.21875)
  • 查看开机时间
import datetime
t = psutil.boot_time()
datetime.datetime.fromtimestamp(t).strftime('%Y-%m-%d %H:%M:%S')
'2020-04-03 20:44:02'
  • 查看内存信息
virtual_memory = psutil.virtual_memory()
transimite = 1024*1024*1024
virtual_memory.total/transimite # 内存总大小,单位G
7.855434417724609
virtual_memory.used /transimite # 已使用内存
4.221714019775391
virtual_memory.free /transimite # 空闲内存
3.6337203979492188
virtual_memory.percent # 内存使用率
53.7
  • 查看磁盘信息
psutil.disk_partitions() # 查看所有分区信息
[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')]
psutil.disk_usage('c:\\') # 查看指定分区的磁盘空间情况
sdiskusage(total=255087415296, used=119552417792, free=135
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值