#!/usr/bin/env python
# -* - コーディング: utf-8 -*-
import wmi
import os
import sys
import platform
import time
def sys_version():
c = wmi.WMI ()
#c.Win32_OperatingSystem() の sys のオペレーティング システム バージョン
を取得します:
print "バージョン:%s" % sys.Caption.encode("UTF8") ,"Vernum: %s" % sys.BuildNumber
print sys.OSArchitecture.encode("UTF8")#システムは 32 ビットまたは 64 ビットです
print sys.NumberOfProcesses #実行中のプロセスの総数現在のシステム
def cpu_mem():
c = wmi.WMI ()
#CPU タイプとメモリ
c.Win32_Processor():
#print "プロセッサ ID: %s" %processor.DeviceID
print "プロセス名: %s" %processor.Name.strip()
c.Win32_PhysicalMemory() のメモリ:
print "メモリ容量: % .fMB" %(int(Memory.Capacity)/1048576)
def cpu_use():
#5 秒ごとに CPU 使用率を取得します
c = wmi.WMI()
while True:
c .Win32_Processor() の CPU:
timestamp = time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime())
timestamp = time. %s: %d %%' % (timestamp, cpu.DeviceID, cpu.LoadPercentage)
time.sleep(5)
def disc():
c = wmi.WMI ()
#c.Win32_DiskDrive の物理ディスクのハード ディスク パーティション
を取得します ():
の物理ディスク.associators のパーティション ("Win32_DiskDriveToDiskPartition"):
のパーティション.associators の論理ディスク("Win32_LogicalDiskToPartition" ): PRINT Physical_disk.caption.encode ("UTF8")、partition.caption.encode ("UTF8")、logical_disk.caption
#🎜 🎜 🎜
DISK の場合C の場合。Win32_logicaldisk (DriveType=3):
print disc.Caption, "%0.2f%% free" % (100.0 * long (disk.FreeSpace) / long (disk.Size))
def network() :
c = wmi.WMI ()
#c.Win32_NetworkAdapterConfiguration のインターフェイスの MAC アドレスと IP アドレスを取得します
(IPEnabled=1):
print "MAC: %s" % Interface.MACAddress
for ip_address ininterface.IPAddress:
print "ip_add: %s" % ip_address
print
# s の自己起動プログラム
の場所を取得しますc.Win32_StartupCommand () 内:
print "[%s] %s " % (s.Location.encode("UTF8"), s.Caption.encode("UTF8"), s. Command.encode("UTF8" ))
#c.Win32_Process () のプロセスの現在実行中のプロセス
を取得します:
print process.ProcessId, process.Name
def main() :
sys_version()
#cpu_mem()
#disk()
#network()
#cpu_use()
if __name__ == '__main__':
main()
print platform.system()
print platform.release()
print platform.version()
print platform.platform()
print platform.machine()
例 2:
あまり使用しないので、CPU、メモリ、ハードディスクのみを取得します。その他のリソースが必要な場合は、msdn を参照してください。
コードをコピー コードは次のとおりです:
import os
import win32api
import win32con
import wmi
import time
def getSysInfo(wmiService = None):
result = {}
if wmiService == None:
wmiService = wmi.WMI()
# cpu
wmiService の CPU 用。 Win32_Processor():
timestamp = time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime())
result['cpuPercent'] = cpu .loadPercentage
# メモリ
cs = wmiService.Win32_ComputerSystem()
os = wmiService.Win32_OperatingSystem()
result['memTotal'] = int(int(cs[0].TotalPhysicalMemory)/1024 /1024)
result['memFree'] = int(int(os[0].FreePhysicalMemory)/1024)
#disk
result['diskTotal'] = 0
result['diskFree '] = 0
wmiService.Win32_LogicalDisk(DriveType=3) のディスク:
result['diskTotal'] += int(disk.Size)
result['diskFree'] += int(disk .FreeSpace)
result['diskTotal'] = int(result['diskTotal']/1024/1024)
result['diskFree'] = int(result['diskFree']/1024/1024)
結果を返す
if __name__ == '__main__':
wmiService = wmi.WMI()
while True:
print getSysInfo(wmiService)
time.sleep(3)
使用されている wmi モジュールは、wmi の初期化時にシステム リソースを大量に占有しているため、必要に応じて循環取得し、循環体の外側で wmi オブジェクトを初期化してから関数の領域に転送すると、CPU リソースが発生しません。