13

我目前正在编写一个程序,以在一段时间(例如半小时)网络流量低于某个阈值时关闭计算机。

这是我工作的伪代码将给出正确的逻辑:

BEGIN SUBPROGRAM
    loopFlag = True
    Wait 5 minutes    # Allows time for boot and for the machine to settle
    traffic = 0
    WHILE loopFlag = True DO
        FOR sec = 0 to 3600
            traffic += *network.traffic()*
            wait 1 second
        ENDFOR
        IF traffic < trafficThreshold THEN
            loopFlag = False
        ENDIF
    ENDWHILE
    os.ShutDown()
END SUBPROGRAM

我正在寻找的是可以让我测量这一点的 Python 模块或库。

虽然我对此进行了 各种 研究,但无论它们的语言如何,这些似乎都不是我所追求的那种功能。

关于如何实现这一点的任何想法?

4

1 回答 1

24

要检查系统上的网络流量,我建议您查看psutil

>>> psutil.net_io_counters(pernic=True)
{'lo': iostat(bytes_sent=799953745, bytes_recv=799953745, packets_sent=453698, packets_recv=453698), 
 'eth0': iostat(bytes_sent=734324837, bytes_recv=4163935363, packets_sent=3605828, packets_recv=4096685)}
>>>

并关闭您的操作系统,如果您在 Windows 上,请检查以下内容:操作系统重新启动、关机、休眠、睡眠、唤醒(Windows Python)

如果您正在使用linux/ unix,请使用subprocess模块发送shutdown/reboot命令。

于 2012-01-22T04:03:59.063 回答