我正在编写一个程序,在一段时间(比如半小时)网络流量低于某个阈值时关闭计算机。
这是我工作的伪代码将给出正确的逻辑:
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模块或库。
虽然我已经done various research,但这些似乎并不是我所追求的功能,无论他们的语言如何。
关于如何实现这一点的任何想法?
答案 0 :(得分:22)
要检查系统上的网络流量,建议您查看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上,请检查:OS Reboot, Shutdown, Hibernate, Sleep, Wakeup (Windows Python)
如果您使用linux
/ unix
,请使用subprocess
模块发送shutdown
/ reboot
命令。