相关文章推荐
爱运动的核桃  ·  LSM树详解 - 知乎·  2 年前    · 
风度翩翩的可乐  ·  excel vba sort ...·  2 年前    · 
果断的李子  ·  c# - Blazor LiteDB ...·  3 年前    · 

讀取電腦資訊 ( 硬碟容量、CPU、RAM...等 )

這篇文章會使用 Python 的 psutil 第三方函式庫,讀取電腦系統相關資訊 ( 例如硬碟容量、CPU、RAM...等 )。

快速導覽:

  • 安裝 psutil 函式庫
  • 讀取硬碟、CPU 和 RAM 資訊
  • 讀取網路卡資訊
  • 讀取系統與使用者資訊
  • 讀取應用程式資訊
  • 本篇使用的 Python 版本為 3.7.12, 所有範例可使用 Google Colab 實作 ,不用安裝任何軟體 ( 參考: 使用 Google Colab ),不過因為要取得電腦資訊,所以 使用本機環境 ( 參考: 使用 Python 虛擬環境 ) 或 Anaconda Jupyter ( 參考: 使用 Anaconda ) 進行實作會比較貼近真實狀況。

    安裝 psutil 函式庫

    輸入下列指令,就能安裝 psutil 函式庫 ( 依據每個人的作業環境不同,可使用 pip 或 pip3 或 pipenv,Anaconda 和 Colab 不用額外安裝 )。

    pip install psutil
    

    讀取硬碟、CPU 和 RAM 資訊

    載入 psutil 函式庫後,透過下列的方法,就能讀取電腦硬碟、CPU 和 RAM 的資訊。

  • CPU 數量、使用率和使用頻率

    CPU 數量分兩種,一種是邏輯數量,一種是實際物理上的 CPU 數量,如果邏輯數量較實際數量多,表示正在 CPU 執行超執行緒的動作。

    import psutil
    print(psutil.cpu_count())               # CPU 邏輯數量
    print(psutil.cpu_count(logical=False))  # 實際物理 CPU 數量
    print(psutil.cpu_percent(interval=0.5, percpu=True)) # CPU 使用率
                                                         # interval:每隔多少秒更新一次
                                                         # percpu:查看所有 CPU 使用率
    print(psutil.cpu_freq())                # CPU 使用頻率
    
  • 記憶體使用狀況

    讀取記憶體使用狀況可以知道記憶體總量 ( total )、可用量 ( available )、已使用的記憶體 ( used ) 和使用率 ( percent ) 等資訊。

    import psutil
    print(psutil.virtual_memory())  # 記憶體資訊
    

    讀取硬碟狀況可以查看分割的硬碟、硬碟使用率和硬碟 IO 等資訊。

    import psutil
    print(psutil.disk_partitions())             # 所有硬碟資訊
    print(psutil.disk_usage('硬碟 device 名稱')) # 指定硬碟資訊
    

    讀取網路卡資訊

    載入 psutil 函式庫後,透過下列的方法,就能讀取網路卡資訊 ( psutil.net_connections() 可能會需要安全性認證 )。

    import psutil
    print(psutil.net_io_counters())  # 網路封包
    print(psutil.net_if_addrs())     # 網路卡的組態資訊, 包括 IP 地址、Mac地址、子網掩碼、廣播地址等等
    print(psutil.net_connections())  # 目前機器的網路連線
    print(psutil.users())       # 登陸的使用者資訊
    print(psutil.boot_time())   # 系統啟動時間
    print(datetime.datetime.fromtimestamp(psutil.boot_time())) # 轉換成標準時間
    

    讀取應用程式資訊

    載入 psutil 函式庫後,透過下列的方法,就能讀取目前系統中正在執行的應用程式資訊。

    import psutil
    for prcs in psutil.process_iter():
        print(prcs.name)           # 印出所有正在執行的應用程式 ( 從中觀察 pid )
    p = psutil.Process(pid=3987)   # 讀取特定應用程式
    print(p.name())                # 應用程式名稱
    print(p.exe())                 # 應用程式所在路徑
    print(p.cwd())                 # 應用程式執行路徑
    print(p.status())              # 應用程式狀態
    print(p.username())            # 執行應用程式的使用者
    print(p.cpu_times())           # 應用程式的 CPU 使用時間
    print(p.memory_info())         # 應用程式的 RAM 使用資訊
    

    下圖是以讀取 Spotify 應用程式的資訊:

  • psutil documentation
  • 如果有任何建議或問題,可傳送「意見表單」給我,謝謝~

  •