查看: 1050|回复: 2
收起左侧

[已解决] [python] 为什么这个print不出内容呢

[复制链接]
kxmp
发表于 2018-6-30 01:15:42 | 显示全部楼层 |阅读模式
本帖最后由 kxmp 于 2018-6-30 14:19 编辑

彻底不懂py啊... 我只想用它记录个网速






#!/usr/bin/python
import time
import psutil
import rrdtool

for keys in psutil.net_io_counters(pernic=True):
    if keys == 'eth0':
       recv=psutil.net_io_counters(pernic=True)[keys][1]
       sent=psutil.net_io_counters(pernic=True)[keys][0]
#        up=rrdtool.updatev('rest.rrd','N:%d:%d' % (recv,sent))
#        print up

net = psutil.net_io_counters(pernic=True)
s2 = net['eth0'].bytes_sent
s1 = net['eth0'].bytes_recv

print recv
print sent

while 1:
print sent
time.sleep(15)

118679199
3144329619
3144329619

最后一个print的数字应该变化才对啊
那为什么要把那个变量放到while下面就又可以了....
print s2又没问题

那怎么样不把那个东西放while下面还照样能print呢?!!



ericdj
发表于 2018-6-30 09:09:50 | 显示全部楼层
本帖最后由 ericdj 于 2018-6-30 09:18 编辑

因为你执行print函数的时候sent变量的值没有更新
可以尝试这样修改,仅供参考

#!/usr/bin/python
import time
import psutil
import rrdtool

def update():
       for keys in psutil.net_io_counters(pernic=True):
              if keys == 'eth0':
                          recv=psutil.net_io_counters(pernic=True)[keys][1]
                           sent=psutil.net_io_counters(pernic=True)[keys][0]
        return recv, sent

while 1:
         recv, sent = update()
         print sent
         time.sleep(15)               



评分

参与人数 1人气 +1 收起 理由
kxmp + 1 感谢解答: )

查看全部评分

kxmp
 楼主| 发表于 2018-6-30 13:12:32 | 显示全部楼层
ericdj 发表于 2018-6-30 09:09
因为你执行print函数的时候sent变量的值没有更新
可以尝试这样修改,仅供参考

我照着改了下 果然好了
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-25 17:55 , Processed in 0.123952 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表