我有这样的剧本
import os
import time
os.chdir('/sys/class/net/wlan1/statistics')
while True:
up = open('tx_bytes').read()
time.sleep(1)
print 'UP:',up
值为
UP: 2177453
UP: 2177539
UP: 2177789
UP: 2177990
如何在延迟时间后找到不同的值TX字节.sleep和Befor延迟时间.sleep获取带宽字节persecond? Byte persecond = TXbytes_after_time_sleep - TXbytes_before_time_sleep 在真实的情况下,价值可以无穷无尽。
答案 0 :(得分:1)
到目前为止你有什么担心?你有一定的固有开销,因为你必须回到文件的开头。我们可以通过摆脱多余的 open 命令来减少它:
import time
old = 0
with open('/sys/class/net/wlan1/statistics/tx_bytes') as vol:
while True:
vol.seek(0)
new = vol.read()
time.sleep(1)
print "UP:", new-old
old = new
搜索命令重置文件"书签""到字节0,文件的开头。它比重新打开文件更快,因为它只是对象属性的整数赋值。
这种粒度是否足以满足您的目的?
答案 1 :(得分:0)
就像你猜的那样。
这是非常粗糙而且不是很准确,但在阅读之前花在阅读之前的同一时间,所以我想这很好。
with open('/sys/class/net/wlan1/statistics/tx_bytes') as myfile:
before = myfile.read()
time.sleep(3) # The longer this is the more accurate it will be on average.
with open('/sys/class/net/wlan1/statistics/tx_bytes') as myfile:
after = myfile.read()
print((int(after)-int(before))/3)