9

私はたくさん検索しましたが、役に立つものは何も見つかりませんでした。これは次のようなシステム情報を取得することは可能ですか?

CPU: Intel Core i7-3770K CPU @3.5Ghz
RAM: 8GB
Graphic Card: NVIDIA GeForce GTX 680

Windowsの下で?どうすればこの出力に到達できますか?

編集:platform.processor()必要な出力が得られません。だからそれは私にとって役に立たない。

4

1 に答える 1

23

wmiしばらくの間、これを自分で行う方法を考えていたので、少し掘り下げて、 (必要な)を使用してこのソリューションを思いつきましたpywin32もちろん、言うまでもなく、これは Windows マシンでのみ機能します (質問にはWindowsタグが付いています)。

import wmi

computer = wmi.WMI()
computer_info = computer.Win32_ComputerSystem()[0]
os_info = computer.Win32_OperatingSystem()[0]
proc_info = computer.Win32_Processor()[0]
gpu_info = computer.Win32_VideoController()[0]

os_name = os_info.Name.encode('utf-8').split(b'|')[0]
os_version = ' '.join([os_info.Version, os_info.BuildNumber])
system_ram = float(os_info.TotalVisibleMemorySize) / 1048576  # KB to GB

print('OS Name: {0}'.format(os_name))
print('OS Version: {0}'.format(os_version))
print('CPU: {0}'.format(proc_info.Name))
print('RAM: {0} GB'.format(system_ram))
print('Graphics Card: {0}'.format(gpu_info.Name))

出力例:

OS Name: Microsoft Windows 7 Ultimate 
OS Version: 6.1.7601 7601
CPU: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
RAM: 15.9443855286 GB
Graphics Card: NVIDIA GeForce GTX 960

次の方法で、必要な両方のパッケージをインストールできますpip

pip install --upgrade wmi
pip install --upgrade pypiwin32

さまざまな Win32 コントローラー クラスでアクセスできるその他の変数を確認するには、次のドキュメントを参照してください。

SOで見つかった関連する回答: https://stackoverflow.com/a/11785020/295246


更新:システム RAMos_info.TotalVisibleMemorySizeの場合、(キロバイト単位で値を返す) またはcomputer_info.TotalPhysicalMemory(バイト単位で値を返す) のいずれかを使用できます。後者を使用する場合は、 を使用hurry.filesizeして、かなり人間が読める文字列にすばやく変換できます。

例えば:

from hurry.filesize import size
...
size(int(computer_info.TotalPhysicalMemory))

私の場合、出力は次のとおり15G です。 G を必要に応じて変更することもできます。詳細については、この SO の回答を参照してください: https://stackoverflow.com/a/5194348/295246

于 2016-06-29T16:26:40.047 に答える