可能重复:
I'm new to python, I can't tell if this will work or not
import time
from sys import stdout
varthing = 1
while varthing == 1:
time.sleep(1)
checker = time.strftime("\r%b, %d %H:%M:%S", time.localtime())
print checker,
stdout.flush()
if checker == "Dec, 25 00:00:00" :
print "It's Christmas"
raw_input("Enter anything to close\n")
varthing = 0
我没有看到任何错误。这是圣诞节时通知你的时钟。
答案 0 :(得分:5)
您的strftime格式以\r
开头。为什么?您在if
语句中测试的字符串将永远不会匹配,因为它不以\r
开头。
time.sleep(1)
无法保证只睡一秒钟。它可能会睡得更久,你会错过checker
与你正在测试的字符串相匹配的一秒窗口。
答案 1 :(得分:0)
如果你不需要每秒打印一次,这就可以了:
import datetime, time
target_date = datetime.datetime(2011, 12, 25)
time_left = target_date - datetime.datetime.now()
time.sleep(time_left.total_seconds())
print "It's Christmas"