Python で現在のシステム ステータス (現在の CPU、RAM、空きディスク容量など) を取得するにはどうすればよいですか? 理想的には、Unix プラットフォームと Windows プラットフォームの両方で動作します。
私の検索からそれを抽出する方法はいくつかあるようです:
次のようなライブラリを使用するとサイ(現在は積極的に開発されておらず、複数のプラットフォームでサポートされていないようです)またはpystatgrab(やはり 2007 年以降は活動していないようで、Windows はサポートされていません)。
プラットフォーム固有のコードを使用する(
os.popen("ps")
*nixシステムでは または同様のものを使用するMEMORYSTATUS
などctypes.windll.kernel32
)(ActiveStateのこのレシピ) が Windows プラットフォーム向けにリリースされました。これらすべてのコード スニペットを Python クラスにまとめることもできます。
これらの方法が悪いというわけではありませんが、同じことを実行する、十分にサポートされているマルチプラットフォームの方法がすでにあるのでしょうか?
ベストアンサー1
psutil ライブラリさまざまなプラットフォームの CPU、RAM などの情報を提供します。
psutil は、Python を使用して実行中のプロセスとシステム使用率 (CPU、メモリ) に関する情報をポータブルな方法で取得するためのインターフェイスを提供するモジュールであり、ps、top、Windows タスク マネージャーなどのツールによって提供される多くの機能を実装します。
現在、Linux、Windows、OSX、Sun Solaris、FreeBSD、OpenBSD、NetBSD (32 ビットと 64 ビットの両方のアーキテクチャ) と 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
より多くの概念と関心の概念を提供する他のドキュメントは次のとおりです。