欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用psutil庫進行監(jiān)控進程和資源

 更新時間:2024年01月31日 08:47:14   作者:Sitin濤哥  
psutil是Python系統(tǒng)和進程工具庫,它提供了一種跨平臺的方式來獲取系統(tǒng)信息、管理系統(tǒng)進程、監(jiān)控系統(tǒng)性能、操作系統(tǒng)資源等,下面就跟隨小編一起來學習psutil庫的具體應用吧

Python作為一門強大的編程語言,擁有豐富的標準庫和第三方庫,使得開發(fā)者可以輕松完成各種任務。在系統(tǒng)監(jiān)控和管理方面,psutil庫無疑是一個強大的工具,它可以輕松地獲取系統(tǒng)信息、管理進程、監(jiān)控系統(tǒng)性能等。本文將深入探討psutil庫,介紹它的基本概念、用法和示例代碼,幫助大家更好地理解和利用這個強大的庫。

什么是psutil庫

psutil是Python系統(tǒng)和進程工具庫(Python System and Process Utilities)。它提供了一種跨平臺的方式來獲取系統(tǒng)信息、管理系統(tǒng)進程、監(jiān)控系統(tǒng)性能、操作系統(tǒng)資源等。無論是在Windows、Linux還是macOS,psutil都能提供一致的API,使得開發(fā)者可以輕松地編寫跨平臺的代碼。

安裝psutil庫

要開始使用psutil庫,首先需要安裝它。

可以使用pip來進行安裝:

pip install psutil

安裝完成后,就可以導入并開始使用psutil庫了。

import psutil

獲取系統(tǒng)信息

獲取CPU信息

import psutil

# 獲取CPU核心數(shù)
cpu_count = psutil.cpu_count(logical=False)
print(f"Physical CPU Count: {cpu_count}")

# 獲取邏輯CPU核心數(shù)(包括超線程)
logical_cpu_count = psutil.cpu_count(logical=True)
print(f"Logical CPU Count: {logical_cpu_count}")

# 獲取CPU使用率
cpu_usage = psutil.cpu_percent(interval=1, percpu=True)
for i, usage in enumerate(cpu_usage, 1):
    print(f"CPU {i} Usage: {usage}%")

獲取內存信息

import psutil

# 獲取內存總量
total_memory = psutil.virtual_memory().total
print(f"Total Memory: {total_memory / (1024 ** 3):.2f} GB")

# 獲取可用內存
available_memory = psutil.virtual_memory().available
print(f"Available Memory: {available_memory / (1024 ** 3):.2f} GB")

# 獲取內存使用率
memory_usage = psutil.virtual_memory().percent
print(f"Memory Usage: 1.15MB%")

獲取磁盤信息

import psutil

# 獲取所有磁盤分區(qū)信息
disk_partitions = psutil.disk_partitions()
for partition in disk_partitions:
    print(f"Device: {partition.device}")
    print(f"Mountpoint: {partition.mountpoint}")
    print(f"Fstype: {partition.fstype}")
    print("")

# 獲取指定分區(qū)的使用情況
disk_usage = psutil.disk_usage("/")
print(f"Total: {disk_usage.total / (1024 ** 3):.2f} GB")
print(f"Used: {disk_usage.used / (1024 ** 3):.2f} GB")
print(f"Free: {disk_usage.free / (1024 ** 3):.2f} GB")
print(f"Usage: {disk_usage.percent}%")

獲取網(wǎng)絡信息

import psutil

# 獲取網(wǎng)絡接口列表
network_interfaces = psutil.net_if_addrs()
for interface, addresses in network_interfaces.items():
    print(f"Interface: {interface}")
    for address in addresses:
        print(f"  Family: {address.family}")
        print(f"  Address: {address.address}")
        print(f"  Netmask: {address.netmask}")
        print(f"  Broadcast: {address.broadcast}")
    print("")

管理進程

查詢進程信息

import psutil

# 獲取所有進程列表
all_processes = psutil.process_iter(attrs=['pid', 'name'])
for process in all_processes:
    print(f"Process ID: {process.info['pid']}, Name: {process.info['name']}")

# 根據(jù)進程名稱查詢進程
process_name = "python3"
process_list = [p.info for p in all_processes if p.info['name'] == process_name]
for process in process_list:
    print(f"Process ID: {process['pid']}, Name: {process['name']}")

創(chuàng)建新進程

import psutil
import subprocess

# 創(chuàng)建新進程
subprocess.Popen(["notepad.exe"])

# 檢查進程是否存在
process_name = "notepad.exe"
is_running = any(process.info['name'] == process_name for process in psutil.process_iter(attrs=['name']))
print(f"{process_name} is running: {is_running}")

終止進程

import psutil

# 根據(jù)進程名稱終止進程
process_name = "notepad.exe"
for process in psutil.process_iter(attrs=['name']):
    if process.info['name'] == process_name:
        process.terminate()
        print(f"Terminated {process_name}")

監(jiān)控系統(tǒng)性能

監(jiān)控CPU利用率

import psutil
import time

# 監(jiān)控CPU利用率
for _ in range(5):
    cpu_percent = psutil.cpu_percent(interval=1)
    print(f"CPU Usage: {cpu_percent}%")
    time.sleep(1)

監(jiān)控內存使用量

import psutil
import time

# 監(jiān)控內存使用量
for _ in range(5):
    memory_usage = psutil.virtual_memory().percent
    print(f"Memory Usage: 1.15MB%")
    time.sleep(1)

監(jiān)控磁盤IO

import psutil
import time

# 監(jiān)控磁盤IO
for _ in range(5):
    disk_io = psutil.disk_io_counters()
    print(f"Read

 Count: {disk_io.read_count}")
    print(f"Write Count: {disk_io.write_count}")
    time.sleep(1)

監(jiān)控網(wǎng)絡流量

import psutil
import time

# 監(jiān)控網(wǎng)絡流量
for _ in range(5):
    network_io = psutil.net_io_counters()
    print(f"Bytes Sent: {network_io.bytes_sent} bytes")
    print(f"Bytes Received: {network_io.bytes_recv} bytes")
    time.sleep(1)

操作系統(tǒng)資源

獲取用戶信息

import psutil

# 獲取當前用戶信息
user_info = psutil.users()
for user in user_info:
    print(f"User: {user.name}")
    print(f"Terminal: {user.terminal}")
    print(f"Host: {user.host}")
    print("")

獲取虛擬內存信息

import psutil

# 獲取虛擬內存信息
virtual_memory = psutil.virtual_memory()
print(f"Total: {virtual_memory.total / (1024 ** 3):.2f} GB")
print(f"Used: {virtual_memory.used / (1024 ** 3):.2f} GB")
print(f"Free: {virtual_memory.free / (1024 ** 3):.2f} GB")
print(f"Usage: {virtual_memory.percent}%")

安全性和權限考慮

在使用psutil庫時,需要注意安全性和權限問題。某些功能可能需要管理員權限或超級用戶權限才能訪問,例如終止進程、查詢其他用戶的進程等。確保你的程序以合適的權限運行,以避免潛在的問題。

總結

psutil庫是Python中用于系統(tǒng)監(jiān)控和管理的強大工具,它提供了豐富的功能來獲取系統(tǒng)信息、管理進程、監(jiān)控系統(tǒng)性能等。本文介紹了psutil庫的基本用法和示例代碼,幫助大家更好地理解和利用這個庫。無論是用于系統(tǒng)管理、性能監(jiān)控、自動化任務還是系統(tǒng)信息收集,psutil都是一個不可或缺的Python神器。

以上就是Python利用psutil庫進行監(jiān)控進程和資源的詳細內容,更多關于Python psutil的資料請關注腳本之家其它相關文章!

相關文章

  • 如何利用Python和OpenCV對圖像進行加水印詳解

    如何利用Python和OpenCV對圖像進行加水印詳解

    Python使用opencv是因為覺得它足夠強大,很多圖像處理這塊都是用的它,最近就用opencv添加個水印,這篇文章主要給大家介紹了關于如何利用Python和OpenCV對圖像進行加水印的相關資料,需要的朋友可以參考下
    2021-10-10
  • OpenCV停車場車位實時檢測項目實踐

    OpenCV停車場車位實時檢測項目實踐

    本文主要介紹了OpenCV停車場車位實時檢測項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • pandas?dataframe獲取所有行名稱與列名稱方法示例

    pandas?dataframe獲取所有行名稱與列名稱方法示例

    這篇文章主要給大家介紹了關于pandas?dataframe獲取所有行名稱與列名稱的相關資料,Pandas是Python中用于數(shù)據(jù)分析的非常重要的庫,它提供了多種方法來獲取列名,需要的朋友可以參考下
    2023-09-09
  • python編寫微信公眾號首圖思路詳解

    python編寫微信公眾號首圖思路詳解

    這篇文章主要介紹了python編寫微信公眾號首圖的思路,根據(jù)微信公眾號首圖要求,可以上傳一個不超過5M的圖片,且圖片尺寸要是2.35:1的尺寸,具體實現(xiàn)思路及代碼感興趣的朋友跟隨小編一起看看吧
    2019-12-12
  • Python貪吃蛇游戲編寫代碼

    Python貪吃蛇游戲編寫代碼

    這篇文章主要為大家詳細介紹了Python貪吃蛇游戲的編寫代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Numpy?數(shù)組索引的實現(xiàn)

    Numpy?數(shù)組索引的實現(xiàn)

    本文主要介紹了Numpy?數(shù)組索引的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Pytorch?和?Tensorflow?v1?兼容的環(huán)境搭建方法

    Pytorch?和?Tensorflow?v1?兼容的環(huán)境搭建方法

    這篇文章主要介紹了搭建Pytorch?和?Tensorflow?v1?兼容的環(huán)境,本文是小編經過多次實踐得到的環(huán)境配置教程,給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • Python函數(shù)生成器原理及使用詳解

    Python函數(shù)生成器原理及使用詳解

    這篇文章主要介紹了Python函數(shù)生成器原理及使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 教你用Python按順序讀取文件夾中文件

    教你用Python按順序讀取文件夾中文件

    最近工作中讀取文件時經常遇上比較復雜的情況,所以下面這篇文章主要給大家介紹了關于如何利用Python按順序讀取文件夾中文件的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • Python selenium模塊實現(xiàn)定位過程解析

    Python selenium模塊實現(xiàn)定位過程解析

    這篇文章主要介紹了python selenium模塊實現(xiàn)定位過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07

最新評論