亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

什么是psutil庫(kù)

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

安裝psutil庫(kù)

要開(kāi)始使用psutil庫(kù),首先需要安裝它。

可以使用pip來(lái)進(jìn)行安裝:

pip install psutil

安裝完成后,就可以導(dǎo)入并開(kāi)始使用psutil庫(kù)了。

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}%")

獲取內(nèi)存信息

import psutil

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

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

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

獲取磁盤(pán)信息

import psutil

# 獲取所有磁盤(pán)分區(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)絡(luò)信息

import psutil

# 獲取網(wǎng)絡(luò)接口列表
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("")

管理進(jìn)程

查詢進(jìn)程信息

import psutil

# 獲取所有進(jìn)程列表
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ù)進(jìn)程名稱查詢進(jìn)程
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)建新進(jìn)程

import psutil
import subprocess

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

# 檢查進(jìn)程是否存在
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}")

終止進(jìn)程

import psutil

# 根據(jù)進(jìn)程名稱終止進(jìn)程
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)控內(nèi)存使用量

import psutil
import time

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

監(jiān)控磁盤(pán)IO

import psutil
import time

# 監(jiān)控磁盤(pá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)絡(luò)流量

import psutil
import time

# 監(jiān)控網(wǎng)絡(luò)流量
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

# 獲取當(dāng)前用戶信息
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("")

獲取虛擬內(nèi)存信息

import psutil

# 獲取虛擬內(nèi)存信息
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}%")

安全性和權(quán)限考慮

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

總結(jié)

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

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

相關(guān)文章

  • 如何利用Python和OpenCV對(duì)圖像進(jìn)行加水印詳解

    如何利用Python和OpenCV對(duì)圖像進(jìn)行加水印詳解

    Python使用opencv是因?yàn)橛X(jué)得它足夠強(qiáng)大,很多圖像處理這塊都是用的它,最近就用opencv添加個(gè)水印,這篇文章主要給大家介紹了關(guān)于如何利用Python和OpenCV對(duì)圖像進(jìn)行加水印的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • OpenCV停車場(chǎng)車位實(shí)時(shí)檢測(cè)項(xiàng)目實(shí)踐

    OpenCV停車場(chǎng)車位實(shí)時(shí)檢測(cè)項(xiàng)目實(shí)踐

    本文主要介紹了OpenCV停車場(chǎng)車位實(shí)時(shí)檢測(cè)項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • pandas?dataframe獲取所有行名稱與列名稱方法示例

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

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

    python編寫(xiě)微信公眾號(hào)首圖思路詳解

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

    Python貪吃蛇游戲編寫(xiě)代碼

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論