在Python中每秒记录变量值

时间:2015-11-23 13:38:12

标签: python multithreading logging

我需要每秒或几秒打印变量的值,而“同时”正在修改此变量。所以我会在我的main函数中修改这个变量,我希望每秒都能打印它的值。类似的东西:

'''This is my main program'''

for i in range(very large number):

'''do something which modifies the value of 'var' '''

代码中的其他地方:

'''Every second'''

print var

我看了this,但我不确定这是我正在寻找的,或者我应该如何使用它。

我需要的是简单的,没有其他线程,我不关心同步任何东西,或者在main函数中打印值。

2 个答案:

答案 0 :(得分:3)

您可以使用线程每秒打印var。

试试这个例子:

导入线程

var = 5


def printit():
  global var
  threading.Timer(5.0, printit).start()
  print "Hello, World!", var

printit()

import time

for i in range(1000000):
    time.sleep(2)
    var = i

答案 1 :(得分:1)

基本上,您指出的问题/答案就是您所需要的:

import threading import time

interesting = 0

class MonitorThread(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)

    def run(self):
        global interesting
        while(1):
            print interesting
            time.sleep(1)

MonitorThread().start()

for interesting in range(2000000):
    time.sleep(1)