[解決済み] Pythonで現在のCPUとRAMの使用率を取得する方法は?
質問
Pythonで現在のシステムの状態(現在のCPU、RAM、空きディスク容量など)を取得するのに適した方法は何でしょうか?unix と Windows プラットフォームの場合はボーナスポイントがあります。
検索してみると、いくつか抽出方法がありそうですね。
-
などのライブラリを使用する PSI (現在、積極的に開発されておらず、複数のプラットフォームでサポートされていないようです) あるいは ピスタットグラブ (2007年以来活動をしていないようで、Windowsのサポートもありません)。
-
を使用するなど、プラットフォーム固有のコードを使用します。
os.popen("ps")
などを使用し、*nix系ではMEMORYSTATUS
でctypes.windll.kernel32
(参照 ActiveStateに関するこのレシピ ) をWindowsプラットフォーム向けに作成しました。これらのコードスニペットを使ってPythonのクラスを作ることもできます。
これらの方法が悪いというわけではありませんが、同じことをするのに十分サポートされた、マルチプラットフォームの方法が既にあるのでしょうか?
どのように解決するのか?
psutil ライブラリ は、さまざまなプラットフォームにおけるCPUやRAMなどの情報を提供してくれます。
<ブロッククオートpsutil は、実行中のプロセスやシステムの使用率 (CPU, メモリ) に関する情報を Python を使ってポータブルに取得するためのインターフェースを提供するモジュールで、ps や top、Windows タスクマネージャなどのツールが提供する多くの機能を実装しています。
現在、Linux, Windows, OSX, Sun Solaris, FreeBSD, OpenBSD, NetBSD, 32-bit と 64-bit の両方のアーキテクチャ、 Python 2.6 から 3.5 (Python 2.4 と 2.5 のユーザは 2.1.3 バージョンを使用できます) をサポートしています。
いくつかの例を挙げます。
#!/usr/bin/env python
import psutil
# gives a single float value
psutil.cpu_percent()
# gives an object with many fields
psutil.virtual_memory()
# you can convert that object to a dictionary
dict(psutil.virtual_memory()._asdict())
# you can have the percentage of used RAM
psutil.virtual_memory().percent
79.2
# you can calculate percentage of available memory
psutil.virtual_memory().available * 100 / psutil.virtual_memory().total
20.8
その他の概念や興味のある概念を提供するドキュメントはこちらです。
関連
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] Pythonで文字列の部分文字列を取得するにはどうすればよいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)