簡體   English   中英

如何使用Python在Windows 7上獲得網卡的使用百分比

[英]How to get % usage of a network card on Windows 7 using Python

如何使用Python在Windows 7上獲得一張或多張網卡的使用百分比? 我嘗試使用psutil庫,但它僅返回傳輸的數據。

我想獲取網卡及其用法的列表

Network card 1 - 1%
Network card 2 - 0%
Network card 3 - 5%

您無法獲取百分比,但是可以獲取發送和接收的字節,安裝psutil ,導入psutil並重新安裝(regex模塊)。 請參閱下面的示例代碼,了解我的操作方式。

import psutil # http://code.google.com/p/psutil/
import re # Regular expression

#Percentage function
def percentage(part, whole):
        return 100 * float(part)/float(whole)

if __name__ == '__main__':

    #Retrieve all stats for all Network Cards using psutil
    Stats = psutil.net_io_counters(pernic=True)

    #Just showing printed values for Stats, useful for new coders :)
    for key, val in Stats.items():
        print key, val


    #Filter Starts, convert to string for use with Regular expression
    LanString = str(Stats['Local Area Connection'])
    WirelessString = str(Stats['Wireless Network Connection'])

    #Regular expression pattern that collects values between = character and , character
    pattern = re.compile("\=(.*?)\,") 

    #Find all values matching the pattern
    LanResult = re.findall(pattern, LanString)
    WirelessResult = re.findall(pattern, WirelessString)

    #Select values bytes_sent + bytes_recieved, convert to integers, add together
    LanSumUsage = int(LanResult[0]) + int(LanResult[1])
    WirelessSumUsage = int(WirelessResult[0]) + int(WirelessResult[1])

    #Calculate and print percentages
    TotalUsage = LanSumUsage + WirelessSumUsage
    LanCardPercentage = percentage(LanSumUsage, TotalUsage)
    WirelessCardPercentage = percentage(WirelessSumUsage, TotalUsage)
    print("\nLan Card: %d%%") % LanCardPercentage
    print("Wireless Card: %d%%") % WirelessCardPercentage

花費一點時間編寫這段代碼,這是編程新手(一周內)。 也沒有錯誤處理。

哦,我的輸出在下面,我的局域網卡沒有被使用。

Wireless Network Connection iostat(bytes_sent=801853517, bytes_recv=2106217519, packets_sent=4655581, packets_recv=6351113, errin=0, errout=0, dropin=0, dropout=0)
isatap.{10384343-0618-4406-B3D9-DA096A39B0DC} iostat(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0)
Teredo Tunneling Pseudo-Interface iostat(bytes_sent=3358183, bytes_recv=27088294, packets_sent=40579, packets_recv=33727, errin=0, errout=1474, dropin=0, dropout=0)
Local Area Connection iostat(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0)
Loopback Pseudo-Interface 1 iostat(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0)
isatap.{109E44C6-1D07-4E41-A7EA-FCFF2284A1DB} iostat(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0)

Lan Card: 0%
Wireless Card: 100%

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM