HOWTO · Python
在 Python 中獲取 CPU 使用率
本教程演示如何在 Python 中獲取作業系統的當前 CPU 使用率。了解多種方法,包括使用 psutil 庫和執行 shell 命令,以有效監控 CPU 效能。探索實用的程式碼範例和詳細說明,提升您的 Python 技能並最佳化系統效能。
本頁內容
在當今的數位時代,了解系統效能對開發人員和系統管理員都至關重要。其中一個經常受到關注的關鍵指標就是 CPU 使用率。無論您是在最佳化 Python 應用程式,還是監控系統健康狀態,知道如何獲取 CPU 使用率都可能非常有價值。
本教程將引導您了解幾種使用 Python 獲取作業系統當前 CPU 使用率的方法。讀完本文後,您將扎實掌握如何有效實作這些技術,從而即時監控 CPU 效能。讓我們開始吧!
方法 1:使用 psutil 庫
在 Python 中獲取 CPU 使用率最受歡迎的方法之一是使用 psutil 庫。這個庫是一個強大的工具,提供擷取系統使用率資訊(包括 CPU、記憶體、磁碟和網路)的介面。首先,您需要安裝 psutil。您可以使用 pip 來安裝:
pip install psutil
安裝完成後,您可以使用以下程式碼來獲取 CPU 使用率:
import psutil
cpu_usage = psutil.cpu_percent(interval=1)
print(f"Current CPU Usage: {cpu_usage}%")
輸出:
Current CPU Usage: 15.0%
這段程式碼片段匯入 psutil 庫並呼叫 cpu_percent 方法。interval 參數指定在計算 CPU 使用率之前等待的時間(以秒為單位)。在本例中,它會等待一秒,然後返回已使用的 CPU 百分比。這種方法簡單直接,並提供即時資料,是效能監控的絕佳選擇。
方法 2:使用 os 庫
在 Python 中獲取 CPU 使用率的另一種方法是使用內建的 os 庫。雖然它可能不如 psutil 全面,但仍可提供 CPU 使用率的基本資訊。做法如下:
import os
cpu_usage = os.popen("wmic cpu get loadpercentage").read()
print(f"Current CPU Usage: {cpu_usage.strip()}")
輸出:
Current CPU Usage: 15
在這段程式碼中,我們使用 os.popen() 函式執行一個 shell 命令,擷取 Windows 系統上的 CPU 負載百分比。命令 wmic cpu get loadpercentage 會取得當前的 CPU 負載。read() 方法擷取輸出,然後將其列印出來。請注意,這種方法與平台相關,主要在 Windows 上運作。如果您使用的是類 Unix 系統,可能需要使用不同的命令。
方法 3:使用 subprocess 模組
如果您想更精細地控制 shell 命令的執行和輸出擷取,subprocess 模組是一個絕佳選擇。這種方法可以在不同的作業系統上使用,用途廣泛。使用 subprocess 獲取 CPU 使用率的做法如下:
import subprocess
cpu_usage = subprocess.check_output("top -bn1 | grep 'Cpu(s)'", shell=True).decode('utf-8')
print(f"Current CPU Usage: {cpu_usage.split()[1]}")
輸出:
Current CPU Usage: 15.0
在本例中,我們使用 subprocess.check_output() 執行 top 命令,該命令提供系統處理程序的動態即時檢視。-bn1 旗標告訴命令以批次模式執行且只輸出一次。然後,我們搜尋包含 ‘Cpu(s)’ 的那一行,並將輸出解碼為字串格式。最後,我們分割字串以擷取 CPU 使用率百分比。這種方法功能強大且靈活,可讓您根據需要自訂命令。
方法 4:使用 platform 模組
如果您想要一種能在不同平台上無縫運作的方法,platform 模組可以與其他方法結合使用,以確保相容性。根據作業系統獲取 CPU 使用率的做法如下:
import platform
import psutil
if platform.system() == "Windows":
cpu_usage = psutil.cpu_percent(interval=1)
elif platform.system() == "Linux":
cpu_usage = psutil.cpu_percent(interval=1)
else:
cpu_usage = "Unsupported OS"
print(f"Current CPU Usage: {cpu_usage}")
輸出:
Current CPU Usage: 15.0%
在這段程式碼中,我們先使用 platform.system() 檢查作業系統。根據是 Windows 還是 Linux,我們呼叫 psutil.cpu_percent() 來獲取 CPU 使用率。如果作業系統不受支援,我們返回一則指出這一點的訊息。這種方法對於需要在各種環境中執行的應用程式特別有用,可確保根據作業系統套用正確的方法。
結論
在本文中,我們探討了在 Python 中獲取當前 CPU 使用率的各種方法。從使用 psutil 庫,到使用 os 和 subprocess 執行 shell 命令,每種方法都有其優點和適用場景。根據您的具體需求,您可以選擇最適合自己需要的方法。監控 CPU 使用率對於最佳化效能、確保應用程式順利執行至關重要。現在您已掌握這些技術,便可以在 Python 專案中有效追蹤 CPU 效能。
常見問題
-
在 Python 中監控 CPU 使用率的最佳庫是什麼?
psutil庫因其全面的功能和易用性,被廣泛認為是最佳選擇。 -
我可以在任何作業系統上使用 Python 獲取 CPU 使用率嗎?
可以,透過使用特定平台的命令或像psutil這樣的庫,您可以在各種作業系統上擷取 CPU 使用率。 -
CPU 使用率資訊是即時的嗎?
是的,像psutil.cpu_percent(interval=1)這樣的方法提供即時的 CPU 使用率資料。 -
如何安裝 psutil 庫?
您可以使用 pip,透過命令pip install psutil來安裝psutil。 -
我可以持續監控 CPU 使用率嗎?
可以,您可以在 Python 指令碼中設定一個迴圈,以指定的間隔持續監控 CPU 使用率。