<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python標(biāo)準(zhǔn)庫:psutil 輕松獲取各種系統(tǒng)信息!

          共 1981字,需瀏覽 4分鐘

           ·

          2021-11-07 01:58

          今天介紹的是psutil模塊,它是一個跨平臺庫(https://github.com/giampaolo/psutil)。

          命令行下通過pip安裝:

          pip?install?psutil

          如果跟我一樣安裝的是Anaconda,則剩下這步了,因為自帶了。

          顧名思義,psutil = process and system utilities,它專門用來獲取操作系統(tǒng)以及硬件相關(guān)的信息,比如:CPU內(nèi)存磁盤網(wǎng)絡(luò)進程管理等。

          今天這篇文章,就來給大家介紹一下其常用功能和使用方法。

          查詢CPU信息

          先導(dǎo)入psutil模塊,獲取CPU的信息數(shù)據(jù)。

          import?psutil

          #?CPU邏輯數(shù)量
          psutil.cpu_count()

          #?CPU物理核心
          psutil.cpu_count(logical=False)

          #?統(tǒng)計CPU的用戶/系統(tǒng)/空閑時間
          psutil.cpu_times()

          # interval:每隔0.5s刷新一次
          # percpu:查看所有的cpu使用率
          for?x?in?range(5):
          ????print(psutil.cpu_percent(interval=0.5,?percpu=True))

          輸出結(jié)果:

          注:大家如果對jupyter notebook 同時輸出多個變量感興趣,可以查看這篇文章《Jupyter Notebook使用技巧:輕松輸出多個變量》

          查詢內(nèi)存信息

          輸出內(nèi)存使用情況(總內(nèi)存、可用內(nèi)存、內(nèi)存使用率、已使用內(nèi)存)。

          psutil.virtual_memory()

          比如上面輸出的total=16499146752即為總內(nèi)存16G,已使用內(nèi)存/總內(nèi)存= 76.0%(內(nèi)存使用率)。

          查詢磁盤信息

          可以通過psutil獲取磁盤分區(qū)、磁盤使用率和磁盤IO信息。

          #?磁盤分區(qū)信息
          psutil.disk_partitions()

          #?磁盤使用情況
          psutil.disk_usage('/')

          #?磁盤IO
          psutil.disk_io_counters()

          其中,返回的IO信息指標(biāo)有??

          磁盤IO信息read_count(讀IO數(shù))、write_count(寫IO數(shù))、read_bytes(IO寫字節(jié)數(shù))、read_time(磁盤讀時間)、write_time(磁盤寫時間)。

          查詢網(wǎng)絡(luò)信息

          使用psutil庫查詢網(wǎng)絡(luò)讀寫字節(jié)/包的個數(shù)。

          psutil.net_io_counters()

          其中,返回的數(shù)據(jù)指標(biāo)有??

          • btes_sent: 發(fā)送的字節(jié)數(shù)
          • bytes_recv: 接收的字節(jié)數(shù)
          • packets_sent: 發(fā)送的包數(shù)據(jù)量
          • packets_recv: 接收的包數(shù)據(jù)量
          • errin: 接收包時, 出錯的次數(shù)
          • errout: 發(fā)送包時, 出錯的次數(shù)
          • dropin: 接收包時, 丟棄的次數(shù)
          • dropout: 發(fā)送包時, 丟棄的次數(shù)

          除此以外,還有很多獲取網(wǎng)絡(luò)接口和網(wǎng)絡(luò)連接信息的函數(shù)。

          比如用psutil.net_if_addrs()獲取網(wǎng)絡(luò)接口信息,用psutil.net_if_stats()獲取網(wǎng)絡(luò)接口狀態(tài)等。

          查詢進程信息

          最后,使用psutil模塊也能獲取所有進程的詳細(xì)信息數(shù)據(jù)!

          psutil.pids()?#?所有進程ID

          返回的結(jié)果包括了所有進程的ID(pid)。

          根據(jù) pid 可以獲取一個進程對應(yīng)的 Process 對象,而這個對象里面包含了該進程的全部數(shù)據(jù)。

          下面我們指定進程ID=113408,其實就是當(dāng)前Python交互環(huán)境,來獲取該進程的信息。

          #?獲取指定進程ID=113408,其實就是當(dāng)前Python交互環(huán)境
          p?=?psutil.Process(113408)

          #?進程名稱
          p.name()

          #?進程的exe路徑
          p.exe()

          #?進程的工作目錄
          p.cwd()

          #?進程啟動的命令行
          p.cmdline()

          #?當(dāng)前進程id
          p.pid

          總而言之,psutil使得我們可以輕松用Python程序獲取各類系統(tǒng)信息。

          本文只介紹了該模塊的安裝和基本使用方法,后續(xù)大家想了解更多詳情,可以參考psutil的官網(wǎng):https://github.com/giampaolo/psutil

          我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關(guān)注Python實用寶典。

          有任何問題,可以在公眾號后臺回復(fù):加群,回答相應(yīng)紅字驗證信息,進入互助群詢問。

          原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!

          點擊下方閱讀原文可獲得更好的閱讀體驗

          Python實用寶典?(pythondict.com)
          不只是一個寶典
          歡迎關(guān)注公眾號:Python實用寶典

          瀏覽 71
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  水蜜桃一区二区三区 | 无码欧美XXXXX | 熟女作爱一区二区三区免费 | 日日撸色丁香五月 | 97视频中文自拍 |