ホームページ > バックエンド開発 > Python チュートリアル > Python を使用して CPU、メモリ、ハードディスクなどの Windows システム情報を取得する 2 つの例

Python を使用して CPU、メモリ、ハードディスクなどの Windows システム情報を取得する 2 つの例

WBOY
リリース: 2016-06-16 08:44:36
オリジナル
1363 人が閲覧しました

例 1:

Python は WMI モジュールを使用して、Windows システムのハードウェア情報 (ハードディスク パーティション、使用状況、メモリ サイズ、CPU モデル、現在実行中のプロセス、自動起動プログラムと場所、システム バージョン、その他の情報) を取得します。

コードをコピー コードは次のとおりです:

#!/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 リソースが発生しません。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート