获取每个语句执行后动态更改的当前时间

时间:2013-10-01 10:24:47

标签: python

问题非常直截了当。 请注意以下代码:

import time, datetime
timer = datetime.datetime.now().strftime('%H:%M:%S')
print timer + " This is a test"
time.sleep(5) # 5 seconds until next statement
print timer + " Test after 5 seconds, so the timer should've changed"

执行代码后的结果:

13:22:07 This is a test
13:22:07 Test after 5 seconds, so the timer should've changed

正如您在结果中看到的那样,计时器的睡眠时间相同。 如果我们在这里谈论会议记录,我会接受它,但代码结果中的秒数保持不变。

我们如何使用一次执行一条语句后动态更改的计时器?

3 个答案:

答案 0 :(得分:1)

当您将datetime.datetime.now().strftime('%H:%M:%S') timer变量当前时间分配给timer变量时。

因此,在5秒之后,只需将timer变量重新分配给当前时间[5秒后] 试试这个

import time, datetime
timer = datetime.datetime.now().strftime('%H:%M:%S')
print timer + " This is a test"
time.sleep(5) # 5 seconds until next statement
timer = datetime.datetime.now().strftime('%H:%M:%S')
print timer + " Test after 5 seconds, so the timer should've changed"

答案 1 :(得分:0)

请勿再次使用timer。而是再次使用datetime.datetime.now().strftime('%H:%M:%S')。这将生成一个带有时间的新字符串。将字符串分配给timer后,它不会自动更改。

以下内容应该有效:

import time, datetime
print datetime.datetime.now().strftime('%H:%M:%S') + " This is a test"
time.sleep(5) # 5 seconds until next statement
print datetime.datetime.now().strftime('%H:%M:%S') + " Test after 5 seconds, so the timer should've changed"

答案 2 :(得分:0)

在您的代码中,timer只是一个包含运行代码时当前时间值的字符串。你只需要打印两次,中间睡5秒钟。但这不会改变其价值。

每次想要刷新时间时,您需要重新运行该行:datetime.datetime.now().strftime('%H:%M:%S')