PythonでCPUの情報やメモリの情報を知りたい場合があると思います。そのような場合、「psutil」を用いることで簡単に情報を取得する事が可能です。
ここでは、「psutil」の使用方法についてまとめています。
この記事の対象
psutilとは
「psutil」はPCの情報を取得する事ができるライブラリです。ちなみにpsutilはpython system and process utilitiesの略になるようです。
外部ライブラリなのでインストールする必要があります。
$ pip install psutil
起動中のプロセスIDの取得
import psutil
for proc in psutil.process_iter():
print(proc.pid)
「psutil.process_iter()」は実行中のプロセス情報を取得する関数になります。
pidはプロセスIDを取得するキーになります。
出力は下記のようになります。
800
起動中モジュールの取得
import psutil
for proc in psutil.process_iter():
try:
print(proc.exe())
except psutil.AccessDenied:
print('(AccessDenied)')
起動しているモジュールを取得する場合は「.exe」になります。
C:\Windows\System32\services.exe
上記のように出力されます。
起動中モジュールのコマンドラインの取得
import psutil
for proc in psutil.process_iter():
try:
print('proc.cmdline()')
except psutil.AccessDenied:
print('(AccessDenied)')
起動中のモジュールのコマンドラインを取得するには「.cmdline()」を指定することで可能です。
結果は以下のようになります。
['C:\\Windows\\System32\\RuntimeBroker.exe', '-Embedding']
~~~~
起動中モジュールのカレントディレクトリの取得
import psutil
for proc in psutil.process_iter():
try:
print(proc.cwd())
except psutil.AccessDenied:
print('(AccessDenied)')
起動中モジュールのカレントディレクトリを取得する方法は「.cwd()」になります。
結果は以下のように出力されます。
C:\Program Files\WindowsApps\Microsoft.XboxGamingOverlay_5.823.1271.0_x64__8wekyb3d8bbwe
~~~~
起動中モジュールの状態の取得
import psutil
for proc in psutil.process_iter():
try:
print(proc.status())
except psutil.AccessDenied:
print('(AccessDenied)')
実行中のモジュールのStatusを取得する場合は「.status()」になります。
結果は以下のように出力されます。
running
stopped
running
~~~~
メモリ容量の取得
import psutil
print(psutil.virtual_memory().total)
メモリ容量の取得は「psutil.virtual_memory().total」になります。
出力結果は以下のようになります。8GBのPCの場合になります。
8462848000
バイト→GB変換して表示
import psutil
gb = psutil.virtual_memory().total / (1024**3)
print(f"{gb:.2f} GB")
読みやすいように単位変換版になります。
ネットワーク送受信量の増分を毎秒表示
import psutil, time
prev = psutil.net_io_counters()
while True:
time.sleep(1)
now = psutil.net_io_counters()
up = now.bytes_sent - prev.bytes_sent
down = now.bytes_recv - prev.bytes_recv
print(f"↑ {up/1024:.1f} KB/s ↓ {down/1024:.1f} KB/s")
prev = now
出力結果
↑ 0.1 KB/s ↓ 0.1 KB/s
↑ 0.0 KB/s ↓ 0.0 KB/s
